Sql Server 2000 vs. Sql Server 2008

giovedì 27 gennaio 2011 - 14.18

sonze Profilo | Newbie

Salve,

lavoro su più applicazioni gestionali (alcune web) che utilizzano un unico database Sql Server.
Facendo la migrazione da Sql Server 2000 a Sql Server 2008 si è verificata una diminuzione considerevole di performance (1 cliente in particolare con un database particolarmente corposo lamenta un aumento dei tempi da uno a tre).
E' stato dunque ipotizzata un'analisi di revisione delle query o del database per migliorare i tempi.
Il database è abbastanza complesso: conta circa 700 tabelle.
Non essendo un'esperto DBA ho pensato di affidarmi a Database Engine Tuning Advisor, ma mi rimangono comunque dei dubbi:

1) come scegliere il workload?

Le applicazioni che utilizzano il db possono effettuare miriadi di operazioni, ognuna delle quali prevede decine e decine di query non molto grandi spesso con una struttura del tipo
SELECT <campi> FROM <tabella> WHERE <chiave primaria>
Non so dunque se salvare un'unico trace, molto grande, che rappresenti il più possibile tutto il lavoro compiuto sul database, e sul quale compiere il tuning, oppure se salvare più trace, ognuno in corrispondenza di un'attività specifica, e dunque fare più analisi con DETA.

2) come scegliere quali indici/statistiche applicare?

Ci sono altre strade alternative che potrei percorrere oltre all'uso di DETA?

Quale potrebbero essere le cause del calo di performance da Sql Server 2000 a Sql Server 2008?

Grazie per l'attenzione.

alx_81 Profilo | Guru

>Salve,
Ciao

>Facendo la migrazione da Sql Server 2000 a Sql Server 2008 si è verificata
>una diminuzione considerevole di performance (1 cliente in particolare
>con un database particolarmente corposo lamenta un aumento dei tempi da uno a tre).
Ma hai indici? Se sì, hai provveduto a ricostruirli dopo il cambio di versione?

>Il database è abbastanza complesso: conta circa 700 tabelle.


>1) come scegliere il workload?
sinceramente credo che serva un'analisi veramente approfondita per poter scegliere la via migliore.

>Le applicazioni che utilizzano il db possono effettuare miriadi
>di operazioni, ognuna delle quali prevede decine e decine di
>query non molto grandi spesso con una struttura del tipo
>SELECT <campi> FROM <tabella> WHERE <chiave primaria>
una miriade di operazioni cicliche? usi cursori? Oppure sono solo tanti statement? Un primo passo potrebbe essere cercare di trasformare il più possibile le query iterate in set based, anche, se necessario, nel lato applicativo..

>Non so dunque se salvare un'unico trace, molto grande, che rappresenti
>il più possibile tutto il lavoro compiuto sul database, e sul
>quale compiere il tuning, oppure se salvare più trace, ognuno
>in corrispondenza di un'attività specifica, e dunque fare più
>analisi con DETA.
C'è da capire effettivamente qual è il tipo di attività che quest'applicazione ha con il database.
Prendi una "giornata tipo" e guarda come viene chiamato. Così poi, piano piano, inizi ad analizzare un sottoproblema alla volta, tenendo sempre però conto della visione completa

>2) come scegliere quali indici/statistiche applicare?
dipende proprio dal tipo di accesso, dalla soluzione, da come accedi, quando, quanto, via forum è veramente dura aiutarti. Servirebbe più una "consulenza" qui, perchè è una realtà complessa a quanto sembra.

>Ci sono altre strade alternative che potrei percorrere oltre all'uso di DETA?
Fare fine tuning pesante, cominciare ad analizzare che query fa l'applicazione, analizzare i piani di esecuzione, ecc.. Processo lungo di analisi.

>Quale potrebbero essere le cause del calo di performance da Sql Server 2000 a Sql Server 2008?
Anche qui, dipende sempre. Non è possibile trovare LA REGOLA.

>Grazie per l'attenzione.
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5