sql >> Database teknologi >  >> RDS >> Sqlserver

Indekseret visning vs indekser på tabel

En indekseret visning vil forårsage de samme problemer som et indeks i kolonnen, fordi indekserede visninger kræver with schemabinding , som binder den direkte til tabellen, hvilket forhindrer dig i at ændre/ændre tabellens skema på nogen måde, form eller form. Dette inkluderer ændring af størrelsen på en kolonne (f.eks.-fra varchar(50) til varchar(255) ), ændring af en kolonnes datatype (f.eks.-fra double til decimal(18,5) ), osv. Jeg har set dem forårsage en masse uventet hovedpine på grund af dette faktum.

Mit forslag er at opsætte en lagret procedure eller SSIS-pakke, der vil oprette en rapporteringstabel til dig, der køres hver time eller deromkring. På denne måde kan du indeksere det evigt kærlige helvede ud af det og nyde alle de præstationsfordele, det giver. Jeg er tilbageholdende med at rapportere fra et live, igangværende system. Jeg har faktisk endnu ikke set sagen, hvor dette er nødvendigt. Til rapporteringsformål er timegammel information som regel absolut tilstrækkelig til at få arbejdet gjort.



  1. Har brug for en praktisk løsning til at skabe mønsterdatabase(5-5-5) til 15-puslespil

  2. Brug af 'case-udtrykskolonne' i where-sætning

  3. iPhone:Opretter forbindelse til database via internettet?

  4. MySQL top-N placering og sum resten af ​​samme gruppe