Mgrazione da sql sev2000 a sql srv2005

giovedì 14 gennaio 2010 - 18.48

violink Profilo | Newbie

Ciao a tutti.
su un server con architettura a 64 bit è stato installato sql server 64 bit standard edition.
successivamente sono state portate un paio di instanze sql server 2000 su questo server.
sul vecchio sql server 2000 l'applicazione che accedeva al db è a 32 bit ed utilizza l'accesso tramite odbc.
ora, sul nuovo server, l'applicazione client è sempre la stessa ed utilizza i medesimi driver ma puntando al nuovo server ed al nuovo db che ha mantenuto lo stesso nome ).
sembrava andare tutto bene ma nel momento che dalla applicazione (gestionale) se elaborano query
un po' corpose il server si 'pianta' , dando il risultato (al client) con tempi addirittura ridicoli.
Cosa ho fatto:
- verifica utilizzo memoria (al massimo il task manager mostra un utilizzo di 2gb sui 4 installati)
- roorganizzazione indici
- ricostruzione indici
- aumento della memoria dedicata alle query (da 1024 a 2048 Kb) .
non sono venuto a capo di nulla.
ci possono essere delle problematiche di compatibilità tra la applicazione client a 32 bit e il server a 64 Bit ? qualche altro controllo da fare?
Grazie per l'aiuto.

Gianluca

lbenaglia Profilo | Guru

>ci possono essere delle problematiche di compatibilità tra la
>applicazione client a 32 bit e il server a 64 Bit ?
Non mi risulta.

> qualche altro controllo da fare?
Verifica i piani di esecuzione delle query ed intervieni ove necessario modificandole e/o intervenendo sugli indici.

>Grazie per l'aiuto.
Prego.

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

violink Profilo | Newbie

Grazie.
in effetti ho capito che vi erano dei tempi biblici nel momento in cui la query (che in 2000 non dava questi sintomi) processava i join (scritti nella maniera 'inner join nometabella on campo1 + campo2).
risrcrivendo i join le cose sono migliorate molto ma (per alcune query che utilizzano tabelle indicizzate)
siamo ancora lentini...
mi sono letto un po' di cose sugli indici e credo la direzione sia questa.
A questo punto la domanda è : devo cancellare i vecchi indici e provare a ricrearli uno alla volta
monitorando il piano delle query per vedere i singoli costi ?
negli attuali costi vi sono diversi casi in cui la query effettua un ' RID Lookup ' , con costi elevati.
Ho capito che questi RID Lookup possono essere eliminati (ho letto le 3 puntate sulla teoria degli indici
a firma Pinal Dave) . e vorrei provare.
Non ho sufficiente dimestichezza con gli indici su sqlsrv2005, e quindi chiedo qualche consiglio:
- clustered /non clustered
- colonne della select incluse negli indici o solo campi chiave.

ringrazio per l'aiuto.



lbenaglia Profilo | Guru

>Non ho sufficiente dimestichezza con gli indici su sqlsrv2005,
>e quindi chiedo qualche consiglio:
>- clustered /non clustered
>- colonne della select incluse negli indici o solo campi chiave.

Non esiste una ricetta magica per indicizzare correttamente le tabelle, i fattori che entrano in gioco sono molteplici quindi occorre eseguire diverse prove fino a identificare la soluzione più efficiente.
A titolo generale gli indici clustered vanno utilizzati per indicizzare le colonne coinvolte in raggruppamenti/ordinamenti e specificate nella clausola WHERE con operatori >, >=, <, <= o BETWEEN.
Per quanto riguarda la copertura degli indici, la keyword INCLUDE ti permette di definire indici "snelli" nel b-tree ma che a livello foglia includono le colonne specificate, evitando in questo modo di accedere alle data pages via lookup.

>ringrazio per l'aiuto.
Prego.

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

violink Profilo | Newbie

buongiorno a tutti.
torno sul mio precedente post per dirvi che dopo aver rimesso mano agli indici le cose si sono
normalizzate ed ora le prestazioni sono soddisfacenti.
tuttavia mi capita questo:
ogni settimana circa sono costretto a lanciare manualmente la SP updatestats in quanto noto
dei pesanti rallentamenti e credo che malgrado l'impostazione della opzione autoupdate stats sia
settata su ON , il server non riesca a mantenerle aggiornate.
chiedo se si possa automatizzare l'esecuzione di questa SP di modo da non doverla lanciare manualmente. (io per altri batch utilizzo cmdsql, non so se possa andare bene) .
Ringrazio tutti per il cortese aiuto.

lbenaglia Profilo | Guru

>chiedo se si possa automatizzare l'esecuzione di questa SP di
>modo da non doverla lanciare manualmente. (io per altri batch
>utilizzo cmdsql, non so se possa andare bene) .

Ciao Gianluca,

Se utilizzi l'Express Edition puoi schedulare la stored procedure tramite un windows task che richiami sqlcmd.exe, altrimenti è più comodo definire un nuovo job con SQL Server Agent.

>Ringrazio tutti per il cortese aiuto.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
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