• Passer à la navigation principale
  • Passer au contenu principal
  • Passer à la barre latérale principale
  • Passer au pied de page
Hotfirenet

Hotfirenet

le blog d'un papa Geek

  • Actualités info
  • Domotique
    • Jeedom
  • Catégories
    • Comment faire
    • Développement
    • Edito
    • Multimédia
    • Retour d’expérience

SQLServer – Comment réindexer une base

Le script qui suit est issu de la FAQ du site Developpez

Voici la description faite sur le site par HULK

La gestion des index par SQL Server peut entraîner la fragmentation de ceux-ci et une dégradation des performances. Si le volume d’informations de votre base évolue beaucoup, il est nécessaire de réindexer votre base. Plus votre base change, plus les index perdent en efficacité, il faut donc les recréer. On peut reconstruire les index avec la commande DBCC REINDEX.

Le seul truc pour moi c’est que le script ne prenait pas en compte les schémas, voici donc la modification du script avec la prise en compte des schémas.

[fusion_builder_container hundred_percent= »yes » overflow= »visible »][fusion_builder_row][fusion_builder_column type= »1_1″ background_position= »left top » background_color= » » border_size= » » border_color= » » border_style= »solid » spacing= »yes » background_image= » » background_repeat= »no-repeat » padding= » » margin_top= »0px » margin_bottom= »0px » class= » » id= » » animation_type= » » animation_speed= »0.3″ animation_direction= »left » hide_on_mobile= »no » center_content= »no » min_height= »none »][sql]
DECLARE @schemaName sysname
DECLARE @table_name sysname
DECLARE @schemaTable varchar(max)
DECLARE @TSQL nvarchar(4000)
DECLARE @Err int
DECLARE @Mess varchar(400)
SET @Mess = ‘Début réindexation’
RAISERROR(@Mess, 10, 1) WITH LOG
–Modif de la requete Hotfirenet
DECLARE table_list CURSOR FAST_FORWARD FOR SELECT sch.name as schemaName, tab.name as nom FROM sys.tables as tab INNER JOIN sys.schemas as sch ON tab.schema_id = sch.schema_id WHERE type = ‘u’
–Fin de modif
OPEN table_list
FETCH NEXT FROM table_list INTO @schemaName, @table_name
WHILE @@fetch_status = 0
BEGIN
–Modif Hotfirenet
SET @schemaTable = ‘[‘[email protected]+’].[‘[email protected]_name+’]’
–Fin de modif
SET @TSQL = N’DBCC DBREINDEX("’ + @schemaTable + N’")’

EXECUTE sp_executesql @TSQL
–SELECT @TSQL
SET @Err = @@error
IF (@Err != 0)
BEGIN
SET @Mess = ‘Echec réindexation table ‘ + @schemaTable + ‘ suite erreur ‘ + CONVERT(varchar, @Err)
RAISERROR(@Mess, 16, 1) WITH LOG
END

FETCH NEXT FROM table_list INTO @schemaName, @table_name
END
CLOSE table_list
DEALLOCATE table_list
SET @Mess = ‘Fin réindexation’
RAISERROR(@Mess, 10, 1) WITH LOG
GO
[/sql][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

À propos Djo

Autodidacte, curieux et motivé.

Interactions du lecteur

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Barre latérale principale

Catégories

  • Actualités info
  • At-Home
  • Bon plan
  • Comment faire
  • Développement
  • Domotique
  • Edito
  • High-Tech
  • Jeedom
  • Multimédia
  • Open-Source
  • Retour d’expérience
Infomaniak, l'hebergeur vert

Footer

A PROPOS

Hotfirenet.Com est un blog Geek et High-Tech qui touche au développement informatique, nouvelles technologies, Web, domotique, drones, impression 3D .... En savoir plus…

Djo: Afficher mes articles de blog

PSSST, et si on bossait ensemble ?

Mes compétences ? Le web et le développement informatique. Besoin d’un développement de sites web ? de rédaction de contenu web, d’une expertise en SEO et médias sociaux ? Ou bien vous souhaitez me proposer un partenariat ?

Tous droits réservés © 2022

  • Mentions légales
  • Contact