begin process at 2012 05 25 12:08:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > SQL SERVER - PROCÉDURE STOCKÉE METTANT À JOUR TOUTES LES STATISTIQUES DE TOUTES LES BASES DU SERVEUR

SQL SERVER - PROCÉDURE STOCKÉE METTANT À JOUR TOUTES LES STATISTIQUES DE TOUTES LES BASES DU SERVEUR


 Information sur la source

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Divers Classé sous :sqlserver, procedure, statistique, update Niveau :Expert Date de création :18/02/2005 Date de mise à jour :17/01/2007 18:07:55 Vu :25 877

Auteur : fabrice69

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note


 Description

Dans le cadre de taches administratives il est utile de pouvoir mettre à jour les statistiques des bases de données afin que les requettes des utilisateurs se fassent le plus rapidement possible.
L'évaluation du plan d'exécution de SQL Server est fait suivant l'intérrogation de ces statistiques. Donc si celles-ci ne sont pas correctes au départ, les plans d'exécution des requettes seront faux et celles-ci seront longues à s'exécuter.

Dans cette optique, voila une Procédure stockée qui utilise un Curseur afin de boucler sur toutes les bases du serveur et de mettre à jour chaque base en exécutant un procédure stockée système : "sp_updatestats"

Vous pouvez ensuite planifier l'exécution de cette procédure toutes les semaines voire tous les mois, via les jobs de SQL Agent.

Source

  • ------------------------------------------------------------------------------------------------------
  • CREATE PROCEDURE dbo.SP_System_MiseAJourStatistiquesIndexes
  • /*
  • Permet de mettre à jour toutes les statistiques des Indexes
  • de toutes les bases du serveur SQL Server
  • */
  • AS
  • DECLARE @name sysname
  • DECLARE @LaRequette varchar(8000)
  • DECLARE @DateJour varchar(20)
  • SET @DateJour = REPLACE(CONVERT(VARCHAR, GetDate(), 102), '.', '_')
  • PRINT '---------------------------------------------------------------------'
  • PRINT ' DATE DE LA MISE A JOUR DES STATISTIQUES LANCEE : '+ @DateJour
  • PRINT '---------------------------------------------------------------------'
  • DECLARE TESTCURSEUR CURSOR
  • FOR SELECT Master.dbo.sysdatabases.name FROM Master.dbo.sysdatabases
  • WHERE Master.dbo.sysdatabases.name NOT IN ('tempdb', 'model', 'pubs')
  • OPEN TESTCURSEUR
  • FETCH NEXT FROM TESTCURSEUR
  • INTO @name
  • WHILE @@FETCH_STATUS = 0
  • BEGIN
  • PRINT ''
  • PRINT '---------------------------------------------------------------------'
  • PRINT ' STATISTIQUES MISE A JOUR SUR LA BASE DE DONNEES : '+ @name
  • PRINT '---------------------------------------------------------------------'
  • SET @LaRequette = 'USE ['+ @name +'] exec sp_updatestats'
  • PRINT 'Requette : '+ @LaRequette
  • EXECUTE (@LaRequette)
  • PRINT '---------------------------------------------------------------------'
  • FETCH NEXT FROM TESTCURSEUR
  • INTO @name
  • END
  • CLOSE TESTCURSEUR
  • DEALLOCATE TESTCURSEUR
  • GO
  • ------------------------------------------------------------------------------------------------------
  • -- Elle est utilisable avec la commande suivante : exec dbo.SP_System_MiseAJourStatistiquesIndexes
------------------------------------------------------------------------------------------------------
CREATE PROCEDURE dbo.SP_System_MiseAJourStatistiquesIndexes
/* 
	Permet de mettre à jour toutes les statistiques des Indexes 
 	de toutes les bases du serveur SQL Server 
*/

AS

DECLARE @name sysname
DECLARE @LaRequette varchar(8000)
DECLARE @DateJour varchar(20)

SET @DateJour = REPLACE(CONVERT(VARCHAR, GetDate(), 102), '.', '_')
PRINT '---------------------------------------------------------------------'
PRINT '    DATE DE LA MISE A JOUR DES STATISTIQUES LANCEE : '+ @DateJour
PRINT '---------------------------------------------------------------------'

DECLARE TESTCURSEUR CURSOR
   FOR SELECT Master.dbo.sysdatabases.name FROM Master.dbo.sysdatabases 
   	WHERE Master.dbo.sysdatabases.name NOT IN ('tempdb', 'model', 'pubs')

OPEN TESTCURSEUR
FETCH NEXT FROM TESTCURSEUR
INTO @name

WHILE @@FETCH_STATUS = 0

BEGIN 
	PRINT ''
	PRINT '---------------------------------------------------------------------'
	PRINT ' STATISTIQUES MISE A JOUR SUR LA BASE DE DONNEES : '+ @name
	PRINT '---------------------------------------------------------------------'

	SET @LaRequette = 'USE ['+ @name +'] exec sp_updatestats'
	PRINT 'Requette : '+ @LaRequette
	EXECUTE (@LaRequette)

	PRINT '---------------------------------------------------------------------'

	FETCH NEXT FROM TESTCURSEUR
	INTO @name

END

CLOSE TESTCURSEUR
DEALLOCATE TESTCURSEUR
GO

------------------------------------------------------------------------------------------------------

-- Elle est utilisable avec la commande suivante : exec dbo.SP_System_MiseAJourStatistiquesIndexes

 Conclusion

En espérant que cette SP vous rende service.

Bon coding

Romelard Fabrice (Alias F___)


 Historique

17 janvier 2007 18:07:56 :
Modification de la requête

 Sources du même auteur

SQL SERVER - OBTENIR LES VALEURS CORRESPONDANT A DES UNICODE
SQL SERVER 2000 - VIDER ET COMPACTER TOUTES LES BASES DE DON...
SQL SERVER 2005 : OBTENIR LA LISTE DES BASES DE CONTENU D'UN...
SQL SERVER - OBTENIR LA POSITION DU PREMIER CHIFFRE D'UNE CH...
SQL SERVER - UPDATE D'UNE TABLE EN BOUCLE PAR LOT

 Sources de la même categorie

Source avec Zip TUTORIEL PL/SQL par Julien39
CAPTURE DES CHANGEMENTS DE DONNÉES (CDC: CHANGE DATA CAPTURE... par wissemhabboub
INTERPRETEUR BRAINFUCK par coucou747
CRÉATION D'UNE BASE DE DONNÉE AVEC FICHIER DE DONNÉES, JOURN... par fearmaker
MYSQL : CRÉATION D'UN GUID par maitredede

 Sources en rapport avec celle ci

SQL SERVER - PROCÉDURE STOCKÉE FAISANT UN BACKUP DE TOUTES L... par fabrice69
SQL SERVER - REQUETTE POUR OBTENIR LES INFORMATIONS D'UNE PR... par fabrice69
SQL SERVER - UNE PROC STOCK FAISANT SOIT UN UPDATE SOIT UN I... par fabrice69
SQL SERVER - OBTENIR LA LISTE DES PROCÉDURES STOCKÉES D'UNE ... par fabrice69
PROCEDURE STOCKEE SOUS SQLSERVER par vladam

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Update [ par fdouieb ] Bonjour,J'ai une procedure stockée sur mon serveur SQL Serveur 2003 ayant un update de ce type    create table #Data    (IdRow                    int update dans SqlServer 2008 [ par titi66 ] bonjourdans un procédure stockée, je passe  des parametres, je fais des calculset je veux mettre à jour ma table Si mon enregistrement existe je fait Champ texte update sql server 2008 [ par loic2810 ] Bonjour, Je crée actuellement un site sous asp /sql server 2008 via dreamweaver 8 et lorsque je crée une page d'update mes champs texte ( valeurs par Liste des enregistrements modifiés par un update [ par titi66 ] BonjourSous SQL Server 2008 , comment récupérer la liste des enregistrements modifiés par un Update si cela est possible ?Merci Stored procedure en MySQL + VB6 [ par chanas ] Bonjour,j'essaie d'activer une procedure stockée qui fonctionne correctement en l'appelant dans l'interface MySQL par Call Get_RScapteur2(1234), par V création d'une procedure stokée [ par crapcrap ] Bonjour Je cherche le code pour créer une procédure stockée qui lit un fichier du disque et qui insère sont contenu dans une table colonne image s'il Problème de connexion SQL Server 2008 [ par drcmomo ] Bonjour tout le mondeJe viens d'installer SQLServer 2008 , j'essais de me connecter a ma base de données. Quand je lance mon application j'obtiens l'e procedure stocker et triggers [ par adilcoure ] salut a tous moi adil j ai besoin d'un ensemble d exercices corrigés procedure stocker et triggers Javascript:Insert_Emoticon('/imgs2/smile.gif'); procedure stocké ----------> Ado.net :(:(:( [ par dodofolie ] Salut tt le monde Bein j'espére que vous pourriez m'aidezz !!j'ai une procedure stocké en sql  qui somme un  montant  la procedure est comme suit :cre


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,732 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales