sql >> Databáze >  >> RDS >> Sqlserver

Problémy s fragmentací serveru SQL

Seskupené indexy řídí pořadí dat na DISKU. To je jeden z hlavních důvodů, proč se obvykle doporučuje nastavit klíč vždy rostoucího celého čísla, který bude fungovat jako seskupený index. Tímto způsobem, jak je do tabulky přidáno více dat, jsou přidána na konec aktuálně existujících dat.

Pokud se nejedná o automaticky se zvyšující číslo a nové řádky mohou obsahovat hodnoty, které by byly řazeny někde mezi existujícími hodnotami, pak SQL Server v zásadě dotlačí data na disk, kam patří (aby zachoval pořadí hodnot seskupeného indexového klíče), čímž dojde k fragmentaci. a potenciálně značná režie při IO zápisech dále zpomaluje databázi.

Mám podezření, že máte stejný problém s hodnotami UserRecord.

Takže bych do každé tabulky přidal samostatný seskupený primární klíč s automatickým zvyšováním a v případě potřeby přepracoval vaše FK reference a dotazy.




  1. php:relace nefunguje, když běží živě na serveru

  2. Odstranění trasovacích souborů pomocí ADRCI

  3. Oracle ORA-01805 na databázi Oracle 11g

  4. Prototyp ioctl v Solaris libc