Hello tout le monde,
Est-ce que quelqu'un sait s'il faut reconstruire régulièrement les index d'une base de données SQL Azure ? Ou est-ce que c'est fait automatiquement ?
Merci d'avance.
Hello tout le monde,
Est-ce que quelqu'un sait s'il faut reconstruire régulièrement les index d'une base de données SQL Azure ? Ou est-ce que c'est fait automatiquement ?
Merci d'avance.
Bonjour,
La reconstruction des indexes n'est à ma connaissance pas comprise dans le service.
Chez nous c'est un script hebdo qui fait ça (comme pour nos serveurs on premises).
Merci pour la réponse.
Et comment exécutez-vous vos scripts régulièrement ? Car il n'y a pas d'agent SQL dans SQL Azure (A ma connaissance).
Bonjour,
Il y a plusieurs solutions :
1) Coder un Worker Role qui va lancer des scripts SQL à heure fixe.
2) Utiliser un ordonnanceur
Nous avons choisis la deuxième option car nous n'avions pas envie de réinventer la roue.
Nous utilisons un logiciel nommé VisualCron, mais il est tout à fait possible d'utiliser un autre ordonnanceur ou même le Task Scheduler de Windows.
Ok merci pour la réponse.
Pour ceux que ca intéresse, j'ai créé une procédure stockée "RebuildingIndexes" qui reconstruit tous les indexes de la BDD :
Pour le moment j'appelle cette procédure manuellement, mais je vais modifier mon WorkerRole pour qu'il l'appelle à intervalle régulier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 DECLARE @TableName varchar(255) DECLARE TableCursor CURSOR FOR ( SELECT '[' + IST.TABLE_SCHEMA + '].[' + IST.TABLE_NAME + ']' AS [TableName] FROM INFORMATION_SCHEMA.TABLES IST WHERE IST.TABLE_TYPE = 'BASE TABLE' ) OPEN TableCursor FETCH NEXT FROM TableCursor INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN PRINT('Rebuilding Indexes on ' + @TableName) EXEC('ALTER INDEX ALL ON ' + @TableName + ' REBUILD') FETCH NEXT FROM TableCursor INTO @TableName END CLOSE TableCursor DEALLOCATE TableCursor
Partager