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

::IMPORTANT:: Bug sur l'Analyseur de requête SQL2K ?!!

8 réponses
Avatar
Jean-Yves
Bonjour,

SQLServer 2000 SP3a / Windows Server 2003 / 5.5 Go RAM
Environnement fortement transactionnel avec forts volumes sur certaines
tables.
Base de données unique, respectant les règles de normalité.

Il semblerait que les procédures stockées créées via SQL Query Builder,
comme cela peut être le cas quand on recharge un script sauvegardé dans un
fichier texte dans la fenêtre avant de le compiler, n'inscrivent pas
l'intégralité des dépendances aux tables qu'elles utilisent.

Résultat : dans la nuit, après la recréation de mes (nombreux) index, je
demande (via sp_recompile) le marquage à recompilation de toutes mes
procédures stockées, table par table, et au matin, les performances sont
CATASTROPHIQUES pour certaines procédures, qui visiblement ont été créées via
SQL QB et non SEM comme 80% des autres (intégration de sous-traitance
externe). La simple ouverture de certaines procédures stockées-clefs dans
SEM, un ajout puis une suppession d'un caractère n'importe où et une demande
de recompilation suffit à faire rentrer tout dans l'ordre...

J'en déduis que cette absence de dépendances sur ces procédures empêche leur
recompilation propre, et les statistiques fraîches de réindexation
déclenchent des recompilations parasites avec un contexte bâtard, qui
freinent leur exécution.

Je prends la moindre information.
Merci.

Jean-Yves AUGER
DBA
Limagrain Verneuil Holding

8 réponses

Avatar
Philippe [MS]
Moi j'utilise cela mais j'avais constaté un phénomène équivalent chez un de
mes clients.

SET NOCOUNT ON

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


Phil.

"Jean-Yves" wrote in message
news:
Bonjour,

SQLServer 2000 SP3a / Windows Server 2003 / 5.5 Go RAM
Environnement fortement transactionnel avec forts volumes sur certaines
tables.
Base de données unique, respectant les règles de normalité.

Il semblerait que les procédures stockées créées via SQL Query Builder,
comme cela peut être le cas quand on recharge un script sauvegardé dans un
fichier texte dans la fenêtre avant de le compiler, n'inscrivent pas
l'intégralité des dépendances aux tables qu'elles utilisent.

Résultat : dans la nuit, après la recréation de mes (nombreux) index, je
demande (via sp_recompile) le marquage à recompilation de toutes mes
procédures stockées, table par table, et au matin, les performances sont
CATASTROPHIQUES pour certaines procédures, qui visiblement ont été créées


via
SQL QB et non SEM comme 80% des autres (intégration de sous-traitance
externe). La simple ouverture de certaines procédures stockées-clefs dans
SEM, un ajout puis une suppession d'un caractère n'importe où et une


demande
de recompilation suffit à faire rentrer tout dans l'ordre...

J'en déduis que cette absence de dépendances sur ces procédures empêche


leur
recompilation propre, et les statistiques fraîches de réindexation
déclenchent des recompilations parasites avec un contexte bâtard, qui
freinent leur exécution.

Je prends la moindre information.
Merci.

Jean-Yves AUGER
DBA
Limagrain Verneuil Holding


Avatar
Jean-Yves
Merci pour la réponse rapide, Philippe.
Mon code actuel est une procédure stockée nommée sp_recompile_all, placée
dans master, susceptible de faire n'importe quelle base.
Le voici. Il ne diffère guère du tien.

DECLARE @tablec VARCHAR(64)
DECLARE @ret INT

DECLARE tables_cursor CURSOR FAST_FORWARD
FOR SELECT name FROM sysobjects WHERE type='U' ORDER BY name

OPEN tables_cursor
FETCH NEXT FROM tables_cursor INTO @tablec

WHILE @@FETCH_STATUS = 0
BEGIN
SET @ret = 0
EXEC @ret = sp_recompile @tablec

FETCH NEXT FROM tables_cursor INTO @tablec
END

CLOSE tables_cursor
DEALLOCATE tables_cursor

J'ai copié ton code dans ma procédure, je vais le tester cette nuit, on
verra...
Merci.

"Philippe [MS]" a écrit :

Moi j'utilise cela mais j'avais constaté un phénomène équivalent chez un de
mes clients.

SET NOCOUNT ON

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


Phil.

"Jean-Yves" wrote in message
news:
> Bonjour,
>
> SQLServer 2000 SP3a / Windows Server 2003 / 5.5 Go RAM
> Environnement fortement transactionnel avec forts volumes sur certaines
> tables.
> Base de données unique, respectant les règles de normalité.
>
> Il semblerait que les procédures stockées créées via SQL Query Builder,
> comme cela peut être le cas quand on recharge un script sauvegardé dans un
> fichier texte dans la fenêtre avant de le compiler, n'inscrivent pas
> l'intégralité des dépendances aux tables qu'elles utilisent.
>
> Résultat : dans la nuit, après la recréation de mes (nombreux) index, je
> demande (via sp_recompile) le marquage à recompilation de toutes mes
> procédures stockées, table par table, et au matin, les performances sont
> CATASTROPHIQUES pour certaines procédures, qui visiblement ont été créées
via
> SQL QB et non SEM comme 80% des autres (intégration de sous-traitance
> externe). La simple ouverture de certaines procédures stockées-clefs dans
> SEM, un ajout puis une suppession d'un caractère n'importe où et une
demande
> de recompilation suffit à faire rentrer tout dans l'ordre...
>
> J'en déduis que cette absence de dépendances sur ces procédures empêche
leur
> recompilation propre, et les statistiques fraîches de réindexation
> déclenchent des recompilations parasites avec un contexte bâtard, qui
> freinent leur exécution.
>
> Je prends la moindre information.
> Merci.
>
> Jean-Yves AUGER
> DBA
> Limagrain Verneuil Holding





Avatar
Jean-Yves
Quelques nouvelles nocturnes : au lieu des 19 s habituelles pour marquer à
recompilation les procédures dépendantes de mes 291 tables, ta méthode a mis
1mn 33s. Je ne sais pas encore à quoi c'est dû, mais le résultat reste le
même.
Merci quand même.

"Philippe [MS]" a écrit :

Moi j'utilise cela mais j'avais constaté un phénomène équivalent chez un de
mes clients.

SET NOCOUNT ON

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


Phil.

"Jean-Yves" wrote in message
news:
> Bonjour,
>
> SQLServer 2000 SP3a / Windows Server 2003 / 5.5 Go RAM
> Environnement fortement transactionnel avec forts volumes sur certaines
> tables.
> Base de données unique, respectant les règles de normalité.
>
> Il semblerait que les procédures stockées créées via SQL Query Builder,
> comme cela peut être le cas quand on recharge un script sauvegardé dans un
> fichier texte dans la fenêtre avant de le compiler, n'inscrivent pas
> l'intégralité des dépendances aux tables qu'elles utilisent.
>
> Résultat : dans la nuit, après la recréation de mes (nombreux) index, je
> demande (via sp_recompile) le marquage à recompilation de toutes mes
> procédures stockées, table par table, et au matin, les performances sont
> CATASTROPHIQUES pour certaines procédures, qui visiblement ont été créées
via
> SQL QB et non SEM comme 80% des autres (intégration de sous-traitance
> externe). La simple ouverture de certaines procédures stockées-clefs dans
> SEM, un ajout puis une suppession d'un caractère n'importe où et une
demande
> de recompilation suffit à faire rentrer tout dans l'ordre...
>
> J'en déduis que cette absence de dépendances sur ces procédures empêche
leur
> recompilation propre, et les statistiques fraîches de réindexation
> déclenchent des recompilations parasites avec un contexte bâtard, qui
> freinent leur exécution.
>
> Je prends la moindre information.
> Merci.
>
> Jean-Yves AUGER
> DBA
> Limagrain Verneuil Holding





Avatar
Fred Pichaut
Avez vous essayé l'ajout d'un "dbcc freeproccache" en fin de votre batch?


--
Cdlt,

FP
"Jean-Yves" wrote in message
news:
Quelques nouvelles nocturnes : au lieu des 19 s habituelles pour marquer à
recompilation les procédures dépendantes de mes 291 tables, ta méthode a


mis
1mn 33s. Je ne sais pas encore à quoi c'est dû, mais le résultat reste le
même.
Merci quand même.

"Philippe [MS]" a écrit :

> Moi j'utilise cela mais j'avais constaté un phénomène équivalent chez un


de
> mes clients.
>
> SET NOCOUNT ON
>
> 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
>
>
> Phil.
>
> "Jean-Yves" wrote in message
> news:
> > Bonjour,
> >
> > SQLServer 2000 SP3a / Windows Server 2003 / 5.5 Go RAM
> > Environnement fortement transactionnel avec forts volumes sur


certaines
> > tables.
> > Base de données unique, respectant les règles de normalité.
> >
> > Il semblerait que les procédures stockées créées via SQL Query


Builder,
> > comme cela peut être le cas quand on recharge un script sauvegardé


dans un
> > fichier texte dans la fenêtre avant de le compiler, n'inscrivent pas
> > l'intégralité des dépendances aux tables qu'elles utilisent.
> >
> > Résultat : dans la nuit, après la recréation de mes (nombreux) index,


je
> > demande (via sp_recompile) le marquage à recompilation de toutes mes
> > procédures stockées, table par table, et au matin, les performances


sont
> > CATASTROPHIQUES pour certaines procédures, qui visiblement ont été


créées
> via
> > SQL QB et non SEM comme 80% des autres (intégration de sous-traitance
> > externe). La simple ouverture de certaines procédures stockées-clefs


dans
> > SEM, un ajout puis une suppession d'un caractère n'importe où et une
> demande
> > de recompilation suffit à faire rentrer tout dans l'ordre...
> >
> > J'en déduis que cette absence de dépendances sur ces procédures


empêche
> leur
> > recompilation propre, et les statistiques fraîches de réindexation
> > déclenchent des recompilations parasites avec un contexte bâtard, qui
> > freinent leur exécution.
> >
> > Je prends la moindre information.
> > Merci.
> >
> > Jean-Yves AUGER
> > DBA
> > Limagrain Verneuil Holding
>
>
>


Avatar
Jean-Yves
A la fin de mon script de recompilation ? Je viens d'en ajouter un, on va
voir...
Merci.

"Fred Pichaut" a écrit :

Avez vous essayé l'ajout d'un "dbcc freeproccache" en fin de votre batch?


--
Cdlt,

FP
"Jean-Yves" wrote in message
news:
> Quelques nouvelles nocturnes : au lieu des 19 s habituelles pour marquer à
> recompilation les procédures dépendantes de mes 291 tables, ta méthode a
mis
> 1mn 33s. Je ne sais pas encore à quoi c'est dû, mais le résultat reste le
> même.
> Merci quand même.
>
> "Philippe [MS]" a écrit :
>
> > Moi j'utilise cela mais j'avais constaté un phénomène équivalent chez un
de
> > mes clients.
> >
> > SET NOCOUNT ON
> >
> > 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
> >
> >
> > Phil.
> >
> > "Jean-Yves" wrote in message
> > news:
> > > Bonjour,
> > >
> > > SQLServer 2000 SP3a / Windows Server 2003 / 5.5 Go RAM
> > > Environnement fortement transactionnel avec forts volumes sur
certaines
> > > tables.
> > > Base de données unique, respectant les règles de normalité.
> > >
> > > Il semblerait que les procédures stockées créées via SQL Query
Builder,
> > > comme cela peut être le cas quand on recharge un script sauvegardé
dans un
> > > fichier texte dans la fenêtre avant de le compiler, n'inscrivent pas
> > > l'intégralité des dépendances aux tables qu'elles utilisent.
> > >
> > > Résultat : dans la nuit, après la recréation de mes (nombreux) index,
je
> > > demande (via sp_recompile) le marquage à recompilation de toutes mes
> > > procédures stockées, table par table, et au matin, les performances
sont
> > > CATASTROPHIQUES pour certaines procédures, qui visiblement ont été
créées
> > via
> > > SQL QB et non SEM comme 80% des autres (intégration de sous-traitance
> > > externe). La simple ouverture de certaines procédures stockées-clefs
dans
> > > SEM, un ajout puis une suppession d'un caractère n'importe où et une
> > demande
> > > de recompilation suffit à faire rentrer tout dans l'ordre...
> > >
> > > J'en déduis que cette absence de dépendances sur ces procédures
empêche
> > leur
> > > recompilation propre, et les statistiques fraîches de réindexation
> > > déclenchent des recompilations parasites avec un contexte bâtard, qui
> > > freinent leur exécution.
> > >
> > > Je prends la moindre information.
> > > Merci.
> > >
> > > Jean-Yves AUGER
> > > DBA
> > > Limagrain Verneuil Holding
> >
> >
> >





Avatar
Philippe [MS]
Bonjour,

C'est lié au fait que je fais également un UPDATE STATISTICS sur les tables
!!!

Phil.

"Jean-Yves" wrote in message
news:
Quelques nouvelles nocturnes : au lieu des 19 s habituelles pour marquer à
recompilation les procédures dépendantes de mes 291 tables, ta méthode a


mis
1mn 33s. Je ne sais pas encore à quoi c'est dû, mais le résultat reste le
même.
Merci quand même.

"Philippe [MS]" a écrit :

> Moi j'utilise cela mais j'avais constaté un phénomène équivalent chez un


de
> mes clients.
>
> SET NOCOUNT ON
>
> 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
>
>
> Phil.
>
> "Jean-Yves" wrote in message
> news:
> > Bonjour,
> >
> > SQLServer 2000 SP3a / Windows Server 2003 / 5.5 Go RAM
> > Environnement fortement transactionnel avec forts volumes sur


certaines
> > tables.
> > Base de données unique, respectant les règles de normalité.
> >
> > Il semblerait que les procédures stockées créées via SQL Query


Builder,
> > comme cela peut être le cas quand on recharge un script sauvegardé


dans un
> > fichier texte dans la fenêtre avant de le compiler, n'inscrivent pas
> > l'intégralité des dépendances aux tables qu'elles utilisent.
> >
> > Résultat : dans la nuit, après la recréation de mes (nombreux) index,


je
> > demande (via sp_recompile) le marquage à recompilation de toutes mes
> > procédures stockées, table par table, et au matin, les performances


sont
> > CATASTROPHIQUES pour certaines procédures, qui visiblement ont été


créées
> via
> > SQL QB et non SEM comme 80% des autres (intégration de sous-traitance
> > externe). La simple ouverture de certaines procédures stockées-clefs


dans
> > SEM, un ajout puis une suppession d'un caractère n'importe où et une
> demande
> > de recompilation suffit à faire rentrer tout dans l'ordre...
> >
> > J'en déduis que cette absence de dépendances sur ces procédures


empêche
> leur
> > recompilation propre, et les statistiques fraîches de réindexation
> > déclenchent des recompilations parasites avec un contexte bâtard, qui
> > freinent leur exécution.
> >
> > Je prends la moindre information.
> > Merci.
> >
> > Jean-Yves AUGER
> > DBA
> > Limagrain Verneuil Holding
>
>
>


Avatar
Jean-Yves
OK, autant pour moi...

J'ai progressé. J'ai repris une procédure notoirement bloquante, je lui ai
passé le login client unique de ma BDD comme "owner" et plus "dbo", j'ai mis
tous les CREATE TABLE # en début de code, puis j'ai remplacé toutes les
tables temporaires par des variables de type table, et je n'ai plus aucune
recompilation intempestive... mais j'ai l'impression que c'est quand même
plus long que la version initiale.

Reste que mon problème de dépendances est toujours le même, que la
recompilation suffit à débloquer le problème, mais une fois que nos clients
nous l'apprennent, et que la procédure fautive n'est jamais vraiment la même.

Je pète un câble... ;-)
Merci quand même.
"Philippe [MS]" a écrit :

Bonjour,

C'est lié au fait que je fais également un UPDATE STATISTICS sur les tables
!!!

Phil.

"Jean-Yves" wrote in message
news:
> Quelques nouvelles nocturnes : au lieu des 19 s habituelles pour marquer à
> recompilation les procédures dépendantes de mes 291 tables, ta méthode a
mis
> 1mn 33s. Je ne sais pas encore à quoi c'est dû, mais le résultat reste le
> même.
> Merci quand même.
>
> "Philippe [MS]" a écrit :
>
> > Moi j'utilise cela mais j'avais constaté un phénomène équivalent chez un
de
> > mes clients.
> >
> > SET NOCOUNT ON
> >
> > 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
> >
> >
> > Phil.
> >
> > "Jean-Yves" wrote in message
> > news:
> > > Bonjour,
> > >
> > > SQLServer 2000 SP3a / Windows Server 2003 / 5.5 Go RAM
> > > Environnement fortement transactionnel avec forts volumes sur
certaines
> > > tables.
> > > Base de données unique, respectant les règles de normalité.
> > >
> > > Il semblerait que les procédures stockées créées via SQL Query
Builder,
> > > comme cela peut être le cas quand on recharge un script sauvegardé
dans un
> > > fichier texte dans la fenêtre avant de le compiler, n'inscrivent pas
> > > l'intégralité des dépendances aux tables qu'elles utilisent.
> > >
> > > Résultat : dans la nuit, après la recréation de mes (nombreux) index,
je
> > > demande (via sp_recompile) le marquage à recompilation de toutes mes
> > > procédures stockées, table par table, et au matin, les performances
sont
> > > CATASTROPHIQUES pour certaines procédures, qui visiblement ont été
créées
> > via
> > > SQL QB et non SEM comme 80% des autres (intégration de sous-traitance
> > > externe). La simple ouverture de certaines procédures stockées-clefs
dans
> > > SEM, un ajout puis une suppession d'un caractère n'importe où et une
> > demande
> > > de recompilation suffit à faire rentrer tout dans l'ordre...
> > >
> > > J'en déduis que cette absence de dépendances sur ces procédures
empêche
> > leur
> > > recompilation propre, et les statistiques fraîches de réindexation
> > > déclenchent des recompilations parasites avec un contexte bâtard, qui
> > > freinent leur exécution.
> > >
> > > Je prends la moindre information.
> > > Merci.
> > >
> > > Jean-Yves AUGER
> > > DBA
> > > Limagrain Verneuil Holding
> >
> >
> >





Avatar
Fred BROUARD
De quel façon recalculer vous vos index ?

En effet, cela peut influencer de façon drastique vos performances et
expliquerait cela.

En fait, le mieux est un
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )
WITH DROP_EXISTING

en assurant le même nom à l'index.

Inutile aussi de reconstruire tous vos index de manière systématique. Assurez
vous que seuls les index fragmentés sont recalculés , et encore uniquement pour
les grosses tables.

Enfin, vous pouvez choisir de recompiler les quelques SP qui vous semble ne pas
avoir recréer correctement les liens.

A +

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************


Jean-Yves a écrit:
Bonjour,

SQLServer 2000 SP3a / Windows Server 2003 / 5.5 Go RAM
Environnement fortement transactionnel avec forts volumes sur certaines
tables.
Base de données unique, respectant les règles de normalité.

Il semblerait que les procédures stockées créées via SQL Query Builder,
comme cela peut être le cas quand on recharge un script sauvegardé dans un
fichier texte dans la fenêtre avant de le compiler, n'inscrivent pas
l'intégralité des dépendances aux tables qu'elles utilisent.

Résultat : dans la nuit, après la recréation de mes (nombreux) index, je
demande (via sp_recompile) le marquage à recompilation de toutes mes
procédures stockées, table par table, et au matin, les performances sont
CATASTROPHIQUES pour certaines procédures, qui visiblement ont été créées via
SQL QB et non SEM comme 80% des autres (intégration de sous-traitance
externe). La simple ouverture de certaines procédures stockées-clefs dans
SEM, un ajout puis une suppession d'un caractère n'importe où et une demande
de recompilation suffit à faire rentrer tout dans l'ordre...

J'en déduis que cette absence de dépendances sur ces procédures empêche leur
recompilation propre, et les statistiques fraîches de réindexation
déclenchent des recompilations parasites avec un contexte bâtard, qui
freinent leur exécution.

Je prends la moindre information.
Merci.

Jean-Yves AUGER
DBA
Limagrain Verneuil Holding