Det er rigtigt, at det er hurtigere at ændre en tabel, hvis du ikke også skal ændre et eller flere indekser og muligvis også udføre begrænsningskontrol, men det er også stort set irrelevant, hvis du så skal tilføje disse indekser. Du skal overveje den fuldstændige ændring af systemet, som du ønsker at gennemføre, ikke kun en enkelt del af det.
Hvis du tilføjer en enkelt række til en tabel, der allerede indeholder millioner af rækker, ville det naturligvis være dumt at droppe og genopbygge indekser.
Men selvom du har en helt tom tabel, hvor du vil tilføje flere millioner rækker, kan det stadig være langsommere at udskyde indekseringen til efterfølgende.
Grunden til dette er, at en sådan indsættelse bedst udføres med den direkte sti-mekanisme, og når du bruger direkte sti-indsættelser i en tabel med indekser på, bygges der midlertidige segmenter, der indeholder de data, der kræves for at bygge indekserne (data plus rækker). ). Hvis disse midlertidige segmenter er meget mindre end den tabel, du lige har indlæst, vil de også være hurtigere at scanne og bygge indeksene ud fra.
alternativet, hvis du har fem indeks på bordet, er at foretage fem fulde tabelscanninger, efter du har indlæst det for at bygge indeksene.
Det er klart, at der er enorme gråzoner involveret her, men godt gået for:
- Spørgemyndighed og generelle tommelfingerregler, og
- Kørsel af faktiske tests for at fastslå fakta i din egen sag.
Rediger:
Yderligere overvejelser -- du kører en sikkerhedskopi, mens indekserne slettes. Nu, efter en nødgendannelse, skal du have et script, der bekræfter, at alle indekser er på plads, når du får virksomheden til at puste dig i nakken for at få systemet op igen.
Desuden, hvis du absolut var fast besluttet på ikke at opretholde indekser under en massebelastning, skal du ikke droppe indekserne - deaktiver dem i stedet. Dette bevarer metadataene for indeksernes eksistens og definition og muliggør en mere enkel genopbygningsproces. Bare pas på, at du ikke ved et uheld genaktiverer indekser ved at afkorte tabellen, da dette vil gøre deaktiverede indekser aktiveret igen.