bonjour a tous
j'ai une requéte de reporting qui se lance sur le serveur du production pour faire une extraction du production sur une periode de 8 heures
SELECT count(distinct([Board_ID])) FROM Location where Inspection_end_time between '2014-09-25 14:00:00' and '2014-09-25 22:00:00'
pendant la première lancement du cette requête cette dernière a pris 355ms pour afficher la résultat pour cela j'ai utiliser l'assistance paramétrage de moteur du
base de donné pour analyser cette requête et voir l'index manquant qui permet d’accéléré leur exécution la recommandation était de crée un index non cluster
qui groupe les colone Board_ID, Inspection_end_time between ,[Location_ID]
1 2 3 4 5 6 7 8
| /****** Object: Index [_dta_index_Location_8_1765581328__K4_K1_K6] Script Date: 09/25/2014 15:11:21 ******/
CREATE NONCLUSTERED INDEX [_dta_index_Location_8_1765581328__K4_K1_K6] ON [dbo].[Location]
(
[Board_ID] ASC,
[Location_ID] ASC,
[Inspection_end_time] ASC
)WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
GO |
après l'ajout de cette index le temps a été diminuer vers 145ms
le lendemain j'ai lancer de nouveau l'assistant en analysant cette requête la recommandation ma demande de crée un autre index noncluster qui contient les mêmes colonnes [Inspection_end_time] [Location_ID] [Board_ID] mais avec ordre inverse de la première index ci joint leur script de création
1 2 3 4 5 6 7 8
| /****** Object: Index [_dta_index_Location_8_1765581328__K6_K1_K4] Script Date: 09/25/2014 15:11:07 ******/
CREATE NONCLUSTERED INDEX [_dta_index_Location_8_1765581328__K6_K1_K4] ON [dbo].[Location]
(
[Inspection_end_time] ASC,
[Location_ID] ASC,
[Board_ID] ASC
)WITH (PAD_INDEX = ON, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
GO |
Après leur création le temps a diminuer a 50 ms ma question quel est la différence entre ces deux index ???
pour info ma requête actuellement est entrain d’utiliser la deuxième index --->seek index dta_index_Location_8_1765581328__K6_K1_K4
Partager