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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <Guitoux1@discussions.microsoft.com> wrote in message
news:67293622-07AC-4797-AE40-5964C2824710@microsoft.com...
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
- 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