Query non performanti

giovedì 15 novembre 2007 - 14.38

rommel Profilo | Newbie

Salve,
Mi occopo di Sql 2005: ho migrato il mio database dalla versione 2000 alla versione 2005,
purtroppo ho notato che in alcuni casi anche se ho mantenuto la stessa configurazione ,le query fanno molta fatica ad eseguirsi. Sono query piuttosto complesse ma che nella versione 2000 non mi davano nessun problema.
Qualcuno ha avuto il mio stesso problema? Come si può risolvere?
grazie mille
saluti
Romina

lbenaglia Profilo | Guru

>Mi occopo di Sql 2005: ho migrato il mio database dalla versione
>2000 alla versione 2005,
>purtroppo ho notato che in alcuni casi anche se ho mantenuto
>la stessa configurazione ,le query fanno molta fatica ad eseguirsi.
>Sono query piuttosto complesse ma che nella versione 2000 non
>mi davano nessun problema.
>Qualcuno ha avuto il mio stesso problema? Come si può risolvere?

Ciao Romina,

come prima cosa se hai eseguito un restore o un attach di un database SQL Server 2000 su 2005 dovrai ricostruire tutti gli indici ad esempio utilizzando il comando non documentato DBCC DBREINDEXALL(db_name/db_id).

Se riscontri ancora problemi di performance l'unica cosa è confrontare i piani di secuzione delle tue query sui due ambienti e capire dove differiscono.

>grazie mille
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

rommel Profilo | Newbie

Ok,
grazie mille per la risposta innanzitutto, l'operazione non è stata secondo me eseguita nel
modo corretto, tanto che nella migrazione non erano state ricreate nemmeno le chiavi primarie.
Come uso il comando che mi hai dato?
Il db in 2000 non lo avevo progettato io, per vedere tutti i suoi indici come faccio?
Oppure per spostarli/ricrearli in 2005 come posso fare??
grazie mille per la risposta, e la collaborazione

Saluti
Romina

lbenaglia Profilo | Guru

>grazie mille per la risposta innanzitutto, l'operazione non è
>stata secondo me eseguita nel
>modo corretto, tanto che nella migrazione non erano state ricreate
>nemmeno le chiavi primarie.
Ah bene, allora credo che sia un po' difficile che le prestazioni su 2005 possano essere paragonabili alle precedenti

>Il db in 2000 non lo avevo progettato io, per vedere tutti i
>suoi indici come faccio?
Puoi interrogare la tabella di sistema sysindexes

SELECT OBJECT_NAME(id) AS ObjectName , name AS IndexName FROM sysindexes;

>Oppure per spostarli/ricrearli in 2005 come posso fare??
Scriptarli in 2000 ed eseguire il codice ottenuto in 2005.

Secondo me il metodo più semplice per sistemare le cose consiste nel ripristinare un normale Full Backup del db 2000 sull'istanza 2005, impostare il Compatibility Level a SQL Server 2005 (9.0) e ricostruire tutti gli indici del db con la DBCC DBREINDEXALL che ti ho segnalato in precedenza.
Se il db 2000 ha definito degli user accounts che fanno riferimento a login SQL Server, ricordati di ricrearle e rieffettuare il mapping tramite la stored procedure di sistema sp_change_users_login
http://msdn2.microsoft.com/en-us/library/ms174378.aspx

>grazie mille per la risposta, e la collaborazione
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

rommel Profilo | Newbie

Ciao,
grazie mille,
ho sviluppato un dice cluster sulla tabella e adesso la query è peroformante e si esegue correttamente. HO avuto un problema stanotte, durante il buck up, mi è andata in errore il task "Reorganize index". errore nei log "alter index(nome_indice_creato) ON TABLE REORGANIZE WITH (LOB_COMPACTION=ON)"

HO tralasciato qualcosa di importante nello sviluppo indici?

graziw mille

romina

(ps:sto scrivendo con un dito rotto ,se ho sbagliato qualcosa mi spiacE")

rommel Profilo | Newbie

Ciao,
ho risolto proprio ora il mio problema, se potesse essere utile a qualcuno, ho flaggato tutte le
voci in options delle proprietà dell'indice, e così quando ho provato a far rigirare il piano manutenzione si è eseguito regolarmente.
Unica cosa appena prima di costruire l'idice la dimensione del bak era di 5997000 kb, adesso è minore addirittura all'incirca 5001000 kb ma non sono stati cancellati dati. E' normale??
grazie ancora

Romina
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5