sql >> Databasteknik >  >> RDS >> Sqlserver

Hur ändrar vi sidstorleken på SQL Server?

Kort svar:du kan inte ändra det.

På grund av effektiviteten i adresseringen (TLB ) och effektiviteten hos IO (se Läser från eller skriva till filer med hjälp av ett scatter-insamlingsschema ) Databasens sidstorlek måste vara någon multipel av OS-sidstorleken, som drivs av plattformens hårdvaruarkitektur. x86-arkitekturen har en sidstorlek på 4k (se sidofältet i x86 Wiki-artikel , eller se Intel Software Developer's Manuals ), nyare arkitekturer erbjuder stora sidor och SQL Server använder dem för minnesallokering, se SQL-server och stora sidor förklaras .

På grund av databasfilportabilitet kan inte filformatet på disken ändras för att rymma större sidor i modern CPU, det skulle bryta förmågan att läsa databasen på en äldre hårdvara. Och erfarenheten visar att 1MB-sidan är ganska svår att allokera strax efter att operativsystemet startat, på grund av fysisk RAM-fragmentering (en processorsida måste mappas till en sammanhängande hårdvarusida). Och en så stor sida skulle inte spela bra med WAL (Se VÄDUR ).



  1. Skicka ID:n till pre_get_posts-frågan i funktion

  2. Hur använder man TimeZoneInfo i en SQLCLR-sammansättning i SQL Server 2012

  3. Prestanda för Delta E (CIE Lab) beräkning och sortering i SQL

  4. Abstrakt klass från UML till ER-diagram. Möjligt? Hur?