Fabio
21/10/2016 13:39
Campo libero:
|
Fabio
Buongiorno, la prima cosa che consiglieri di provare e' di spostare il database sul PC dove e' in esecuzione Ready Pro. L'unica soluzione SQL Server che supportiamo infatti e' quella che prevede l'utilizzo di un unico server, che faccia da database server e da application server (per i servizi di desktop remoto a cui gli operatori devono collegarsi per eseguire Ready Pro)
La soluzione che utilizzate su un host separato non e' infatti una modalita' di lavoro che certifichiamo, quindi la prima cosa da fare e' di effettuare una installazione come da nostro standard. Se poi il problema dovesse presentarsi anche in questa modalita' possiamo approfondire facendo dei test su un nostro server
|
ECONNET SRL
21/10/2016 18:14
|
ECONNET SRL
Ciao
Abbiamo fatto lo spostamento del database sul server locale. Ora la query su 1700 articoli dura 1 minuto (che comunque non è poco...) La macchina sembra comunque non essere in crisi di risorse.
Grazie
|
Fabio
21/10/2016 18:23
Campo libero:
|
Fabio
Citazione: Ora la query su 1700 articoli dura 1 minuto (che comunque non è poco...) E' un tempo che puo' essere piu' che normale, dipende anche da quanti movimenti ci sono sull'archivio e quali campi sono inseriti sulla visualizzazione (piu' campi sono presenti e piu' l'aggiornamento della griglia richiede tempo, potete provare a togliere qualcosa al limite per tentare di ridurre il tempo, ma non e' detto che scenda di molto)
|
ECONNET SRL
27/10/2016 17:39
|
ECONNET SRL
Ciao, prima usavamo il db di access ed era sensibilmente più veloce
|
Fabio
28/10/2016 08:58
Campo libero:
|
Fabio
Si, confermo che anche questo su alcune procedure e' normale, per il diverso modo in cui viene fatto accesso ai dati https://www.readypro.it/help/it/17/utilizzo-di-ready-pro-in-modalita-sql-server
|
ECONNET SRL
28/10/2016 09:31
|
ECONNET SRL
lavorando sulla piattaforma hardware, è possibile migliorare la situazione? Oppure è possibile mettere degli indici nel database per velocizzare alcune query?
|
Fabio
28/10/2016 11:08
Campo libero:
|
Fabio
A livello hardware l'unica cosa che puo' essere utile e' un disco con tecnologia SSD per contenere il database. Per il resto non esistono altre ottimizzazioni possibili
|
ECONNET SRL
31/10/2016 14:21
|
ECONNET SRL
Buongiorno
Abbiamo effettuato una snapshot del server del gestionale e ripristinata su un hardware dedicato fuori rete.
I tempi sono esattamente gli stessi sebbene le caratteristiche siano totalmente diverse.
Server Originale: Virtuale su Hyper-v che vede 2 core E5 Xeon 2GHz, Ram 8GB, Hard-Disk dell' Hipervisor SAS
Server di Test: PC fisico con core i7 dove windows vede 8 core 2.7GHz, Ram 16GB, Hard-Disk SSD
Grazie
|
Fabio
31/10/2016 15:31
Campo libero:
|
Fabio
Come dicevo non e' che i margini di ottimizzazione siano tanti. Mi stupisce sinceramente che passare ad un disco SSD non abbia cambiato nulla, ma per il resto avere un maggior numero di core, o GB di Ram una volta che si ha il quantitativo minimo che Ready Pro utilizza, serve a ben poco
|
ECONNET SRL
01/11/2016 18:15
|
ECONNET SRL
Ciao ipotizziamo che la lentezza sia dovuta non tanto ad una singola query, ma ad un numero elevato di query lanciate dalla procedura (es. : un loop for...next?)
Abbiamo eseguito la seguente query per rilevare le query più lente e non abbiamo nulla di rilevante nei tempi di esecuzione, tranne il numero elevato di invocazione di alcune query.
E' possibile ridurre il numero di query al DB eseguite nella procedura "articoli da ordinare", raggruppando più query in una sola?
La query usata per reperire le statistiche sulla durata delle query di SQL server è la seguente :
SELECT * from (
SELECT creation_time ,last_execution_time ,total_physical_reads ,total_logical_reads ,total_logical_writes , execution_count , total_worker_time , total_elapsed_time , total_elapsed_time / execution_count avg_elapsed_time ,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1, ((CASE statement_end_offset WHEN -1 THEN DATALENGTH(st.text) ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) + 1) AS statement_text FROM sys.dm_exec_query_stats AS qs CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
) AS tmp1
where statement_text like 'select%'
ORDER BY total_elapsed_time / execution_count DESC
|
Fabio
02/11/2016 10:39
Campo libero:
|
Fabio
Buongiorno, tutte le ottimizzazioni possibili vengono sempre e continuamente apportate a Ready Pro. Per il resto posso solo dire che ad oggi non sono previste modifiche di nessun tipo, le query che vengono effettuate sono quelle necessarie al corretto funzionamento del gestionale
|