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

Opretter SQL Server ikke-klyngede indeks på alle kolonner i en tabel som standard

Nej, SQL Server opretter ikke automatisk ikke-klyngede indekser.
Et klyngeindeks oprettes automatisk baseret på den primære nøgle, medmindre din CREATE TABLE erklæring siger noget andet.

Ja, jeg vil anbefale at indeksere fremmednøglekolonner, fordi disse er mest sandsynligt, at de bliver JOIN'd/søgt mod ved hjælp af IN , EXISTS , osv. Vær dog opmærksom på, at et indeks på et sæt værdier med lav kardinalitet (f.eks. køn) vil være relativt ubrugeligt, fordi der ikke er nok forskel på værdierne.

Afvejningen med alle indekser er, at de kan fremskynde datahentning, men bremse indsættelse/opdatering/sletning af data. Der er også vedligeholdelse, der skal udføres, fordi de kan blive fragmenteret (som harddiske), men måske også ikke bliver brugt over tid. Indekser optager også drevplads.




  1. Udtræk den første numeriske del af feltet

  2. Søg efter en given streng i alle felter i et helt skema for Oracle

  3. Konfiguration af forbindelsen mellem klient og server Oracle 10g

  4. MySQL-fejl #1071 - Den angivne nøgle var for lang; max nøglelængde er 767 bytes