Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Migration de 2000 vers 2008

2 réponses
Avatar
Bl
Bonjour à tous,

Suite à une deuxième tentative de migration d'une base de données d'un SQL
Server 2000 vers SQL Server 2008, je me permet de quérir de l'aide.

Ci dessous les étapes de la migration :
- Backup de la base sql server 2000;
- Restauration sur le sql server 2008;
- Passage en mode compatibilité 2008;
- Recalcul de tous les index (commande dbcc dbreindex);
- Recalcul des statitiques (commande update statistics .. with fullscan);
- Recompilation des procédures stockées;
- Recompilation des fonctions.

Tous ce passe bien jusqu'à ce que je lance mon applicatif. Nous avons
identifié une procédure stockée utilisée lors de l'intégration de données qui
prend environ 3 secondes en SQL Server 2000 et qui maintenant prend 8 minutes
en 2008. Cette procédure stockée se compose d'un select récupérant les
valeurs min et max d'un champ, d'un select into récupérant des lignes dans
une table et d'un update, inclus dans une transaction, se basant sur la table
temporaire (environ 30000 de lignes) et une autre table (environ 5000000 de
lignes). Les index sont les mêmes sur les deux bases, d'où mon
désappointement.

Je pense que je suis passé à coté de quelque chose durant le paramétrage ou
la restauration de la base.

Si vous avez des idées ou des expériences similaires et que vous avez réussi
à les résoudre, merci de m'en informer.

Cordialement

---
Bl@ckDr@go

2 réponses

Avatar
Med Bouchenafa
Le plus simple est que tu prennes le code de cette procedure stockée et que
tu l'analyses dans l'Analyseur de requetes

Bien cordialement
Med Bouchenafa

"@go" wrote in message
news:
Bonjour à tous,

Suite à une deuxième tentative de migration d'une base de données d'un SQL
Server 2000 vers SQL Server 2008, je me permet de quérir de l'aide.

Ci dessous les étapes de la migration :
- Backup de la base sql server 2000;
- Restauration sur le sql server 2008;
- Passage en mode compatibilité 2008;
- Recalcul de tous les index (commande dbcc dbreindex);
- Recalcul des statitiques (commande update statistics .. with fullscan);
- Recompilation des procédures stockées;
- Recompilation des fonctions.

Tous ce passe bien jusqu'à ce que je lance mon applicatif. Nous avons
identifié une procédure stockée utilisée lors de l'intégration de données
qui
prend environ 3 secondes en SQL Server 2000 et qui maintenant prend 8
minutes
en 2008. Cette procédure stockée se compose d'un select récupérant les
valeurs min et max d'un champ, d'un select into récupérant des lignes dans
une table et d'un update, inclus dans une transaction, se basant sur la
table
temporaire (environ 30000 de lignes) et une autre table (environ 5000000
de
lignes). Les index sont les mêmes sur les deux bases, d'où mon
désappointement.

Je pense que je suis passé à coté de quelque chose durant le paramétrage
ou
la restauration de la base.

Si vous avez des idées ou des expériences similaires et que vous avez
réussi
à les résoudre, merci de m'en informer.

Cordialement

---
@go


Avatar
Fred BROUARD
- Backup de la base sql server 2000;
- Restauration sur le sql server 2008;

ce n'est pas la meilleure façon de faire. Il aurait mieux valu
reconstruire la base a partir de scripts SQL et surtout voire la
compatibilité entre la base tempdb et la base de production en ce qui
concerne la collation. Car en 2000 la collation est latin CI AS alors
qu'en 2008 c'est French CI AS...

A +

@go a écrit :
Bonjour à tous,

Suite à une deuxième tentative de migration d'une base de données d'un SQL
Server 2000 vers SQL Server 2008, je me permet de quérir de l'aide.

Ci dessous les étapes de la migration :
- Backup de la base sql server 2000;
- Restauration sur le sql server 2008;
- Passage en mode compatibilité 2008;
- Recalcul de tous les index (commande dbcc dbreindex);
- Recalcul des statitiques (commande update statistics .. with fullscan);
- Recompilation des procédures stockées;
- Recompilation des fonctions.

Tous ce passe bien jusqu'à ce que je lance mon applicatif. Nous avons
identifié une procédure stockée utilisée lors de l'intégration de données qui
prend environ 3 secondes en SQL Server 2000 et qui maintenant prend 8 minutes
en 2008. Cette procédure stockée se compose d'un select récupérant les
valeurs min et max d'un champ, d'un select into récupérant des lignes dans
une table et d'un update, inclus dans une transaction, se basant sur la table
temporaire (environ 30000 de lignes) et une autre table (environ 5000000 de
lignes). Les index sont les mêmes sur les deux bases, d'où mon
désappointement.

Je pense que je suis passé à coté de quelque chose durant le paramétrage ou
la restauration de la base.

Si vous avez des idées ou des expériences similaires et que vous avez réussi
à les résoudre, merci de m'en informer.

Cordialement

---
@go




--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies
*********************** http://www.sqlspot.com *************************