75 messaggi dal 19 ottobre 2012
Ciao a tutti,
qualcuno mi sa dire se è possibile modificare (ottimizzare) questa parte di query:


ORDER BY CAST(UNIONS.ChiaveCliente AS INT), CONVERT(DATETIME, ISNULL(CONVERT(DATETIME,DataPosticipo,105), ISNULL(CONVERT(DATETIME,DataCompetenza,105),'25001231')), 105)


mi rallenta in modo atroce tutta l'esecuzione
Ringrazio anticipatamente

Giorgio
1.959 messaggi dal 27 luglio 2005
Contributi
salve Giorgio,
al di la' del fatto che le conversioni ovviamente vengano effettuate "per ogni riga proiettata, non dovrebbero essere "troppo dispendiose"...
non rientrano in operazioni di confronto/join, e dovrebbero tranquillamente passare come 2/3 scalar..

domanda secca: [DataPosticipo] e [DataCompetenza] che base type sono? spero non siano varchar/char :)

mi viene comunque da pensare che il problema possa essere altrove, nella query...
prova a vedere anche https://www.sentryone.com/plan-explorer ... e' gratuito, e puo' aiutarti un po' di piu' rispetto agli execution plans riportati da SSMS ad individuare le "operazioni colpose"...
brutalmente, https://www.red-gate.com/simple-talk/books/sql-server-execution-plans-third-edition-by-grant-fritchey/, e' anch''esso gratuito e puo' essere un valido companion nelle fasi di analisi...
non per scaricarti, ma per aiutarti :D:D

salutoni romagnoli
--
Andrea

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php
75 messaggi dal 19 ottobre 2012
Buondì Andrea, grazie intanto per la risposta.
Allora nella query (discretamente lunga) in un passaggio c'è ilseguente comando:

CONVERT(VARCHAR(10),cpr1.DataPosticipata, 103) AS DataPosticipo

lostesso vale per datacompetenza.
I valori nella tabella sono datetime

Può essere anche questo il problema di lentezza?
Grazie ancora

Giorgio
1.959 messaggi dal 27 luglio 2005
Contributi
salve,
la conversione NON dovrebbe essere un problema cosi' influente nelle problematiche, al di la' che ogni operazione ovviamente costi.

non mi sono comunque ben chiare le motivazioni di tali conversioni... nell'esempio iniziale e visto il tipo di dato (gia' date), sinceramente non lo comprendo bene...
comunque probabilmente non guarderei questo per vedere come mai la query e' lenta... non e' superfluo ma sicuramente meno influente di parti piu' ingombranti...
salutoni romagnoli

Andrea Montanari
http://www.hotelsole.com - http://www.hotelsole.com/asql/index.php

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.