OVH Cloud OVH Cloud

PB performances procStoc

1 réponse
Avatar
Guitoux1
Bonjour à tous

Je travail sur une application ASP utilisant une BDD SQL Server 2000
J'avais pour mission de l'optimiser afin d'augmenter les performances de
l'application.
J'ai commencé par une étape importante : mettre toutes les requêtes en
procédures stockées (elles étaient précédement en "dur" dans le code ASP)

J'ai donc créé près de 200 proc stoc dans SQL Server et j'ai lancé des test
de monté en charge avec ACT.

Afin de pouvoir comparer mes résultats, j'ai lancé mes scénarios de test
avec l'ancienne et la nouvelle version de l'appli, les deux tournants sur des
plates-formes identiques.

Le gros PB, et que la version avec ProcStoc présente des performances
LARGEMENT INFERIEURES à celles de la version sans ProcStoc !!!

Queulqu'un a-t-il une idée de l'origine du PB ?
Il y a-t-il un paramétrage à faire sur IIS ? (IIS 6.0 dans mon cas) sur SQL
Server ?

Merci de vos réponses

1 réponse

Avatar
Philippe T [MS]
Bonjour,

Quelques questions pour avoir plus d'infos :

- Avez-vous regardé les plans d'exécution des procédures stockées au travers
du Query Analyzer ?
- Utilisez vous le protocole IP ?
- Quel est le mode d'authentification choisi ?
- Avez-vous recompilé vos proc et mis à jour vos statisiques (utilisées pour
calculer les plans d'exécution optimum) ? Le mieux est de cocher les cases
update stat et create stat au niveau des propriétés de la base.

Sinon :
<<

DECLARE @CurObjectName nvarchar(200) -- Table or view name

----
-- Tables and Views recompilation
----
DECLARE My_TableCursor CURSOR FAST_FORWARD FOR
SELECT name FROM SysObjects WHERE xtype = 'U' AND status >= 0 ORDER BY
name

OPEN My_TableCursor
FETCH NEXT FROM My_TableCursor INTO @CurObjectName
WHILE (@@fetch_status = 0)
BEGIN
EXEC( N'update statistics ' + @CurObjectName)
EXEC (N'exec sp_recompile ' + @CurObjectName)

FETCH NEXT FROM My_TableCursor INTO @CurObjectName
END
CLOSE My_TableCursor
DEALLOCATE My_TableCursor

----
-- Procedures and Triggers recompilation
----
DECLARE My_ProcCursor CURSOR FAST_FORWARD FOR
SELECT name FROM SysObjects WHERE (xtype = 'P' OR xtype = 'TR') AND status
= 0 AND name <> 'tp_RecompileAndUpdate' ORDER BY name



OPEN My_ProcCursor
FETCH NEXT FROM My_ProcCursor INTO @CurObjectName
WHILE (@@fetch_status = 0)
BEGIN
EXEC (N'exec sp_recompile ' + @CurObjectName)

FETCH NEXT FROM My_ProcCursor INTO @CurObjectName
END
CLOSE My_ProcCursor
DEALLOCATE My_ProcCursor








Avez vous pensé à créer un objet unique d'accès aux données vous permettant
de gérer du caching ?

Phil.
________________________________________________________
Philippe TROTIN http://blogs.msdn.com/ptrotin
Microsoft Services France http://www.microsoft.com/france

"Guitoux1" wrote in message
news:
Bonjour à tous

Je travail sur une application ASP utilisant une BDD SQL Server 2000
J'avais pour mission de l'optimiser afin d'augmenter les performances de
l'application.
J'ai commencé par une étape importante : mettre toutes les requêtes en
procédures stockées (elles étaient précédement en "dur" dans le code ASP)

J'ai donc créé près de 200 proc stoc dans SQL Server et j'ai lancé des


test
de monté en charge avec ACT.

Afin de pouvoir comparer mes résultats, j'ai lancé mes scénarios de test
avec l'ancienne et la nouvelle version de l'appli, les deux tournants sur


des
plates-formes identiques.

Le gros PB, et que la version avec ProcStoc présente des performances
LARGEMENT INFERIEURES à celles de la version sans ProcStoc !!!

Queulqu'un a-t-il une idée de l'origine du PB ?
Il y a-t-il un paramétrage à faire sur IIS ? (IIS 6.0 dans mon cas) sur


SQL
Server ?

Merci de vos réponses