Vaatimukset: Kun käytetään GUID-tiedostoja ensisijaisina avainaggregaatioindekseinä, suositellaan järjestettyjen GUID-yhdistelmien käyttöä, koska järjestämättömät käyttöliittymät aiheuttavat tilanhukkaa ja heikentävät luku- ja kirjoitustehokkuutta.
Arvostelu:
Tietokannan GUID-arvo
SQL Serverin globaalisti yksilöllisten tunnisteiden (GUID) tietotyypit esitetään tietotyyppeinäuniqueidentifier, joka tallentaa 16 tavun binääriarvon. GUID on binääriluku, jonka päätarkoitus on toimia tunnisteena, joka on oltava ainutlaatuinen verkossa, jossa on monta tietokonetta monilla sivustoilla.
Sekä Guidilla että SqlGuidilla on tapoja vertailla eri GUID-arvoja. SqlGuid-toteutus käyttää SQL Server -toimintaa,Arvon viimeiset kuusi tavua ovat tärkeimmät。
Peräkkäiset GUID:t ovat luontaisesti arvattavissa, joten älä käytä niitä turvallisuusherkissä tilanteissa。
Viittaus:Hyperlinkin kirjautuminen on näkyvissä.
Tietokanta järjestetään GUID:n mukaan
SQL Server -tietokannassa on yksiNewSequentialId()funktio luodakseen järjestetyn GUID:n. Kun luot taulua, voit asettaa sen GUID-tyyppikentän oletusarvoksi ja luoda automaattisesti ensisijaisen avaimen arvon, kun lisätään uutta dataa (tätä funktiota voi käyttää vain kentän oletusarvona, ei suoraan SQL:ssä).
Esimerkki:
NewSequentialId()-funktiota voi käyttää vain tietokannoissa, vaikka Microsoftin MSDN-dokumentaatiossa todetaan, että NEWSEQUENTIALID on Windowsin UuidCreateSequential-funktion kääre.
Vinkki: Älä käytä toimintoa, jos kyse on luottamuksellisuusasiasta. KoskaOn mahdollista arvata seuraavan generoidun GUID:n arvopäästäkseen käsiksi kyseiseen GUID:iin liittyviin tietoihin.
Viittaus:Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
.NET luo järjestetyn GUID:n
UuidCreateSequential-funktio riippuu menetelmän laskentalaitteistostaViimeiset 12 bittiä ovat itse asiassa verkkokortin MAC-osoite。
Koodi on seuraava:
Tulokset ovat seuraavat:
Puute:
- Tämä menetelmä vaatii DllImportin kutsumaan Windows-kirjaston, joten se ei ole monialustainen.
- Sitä ei voi käyttää klusteroidussa ympäristössä, jossa useat koneet kirjoittavat samaan tietokantaan, koska tuloksena olevat GUID:t eroavat toisistaan (funktioriippuvainen laskentalaitteisto), mikä johtaa indeksin pirstaloitumiseen.
- Jos Windows-palvelimesi käynnistyy uudelleen, GUID saattaa alkaa matalammalla alueella, mikä johtaa indeksin pirstaloitumiseen.
Viittaus:
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Jos käytät .NET-ohjelmaa luodaksesi SQL SERVER -järjestetyn käyttöliittymän, suositellaan kolmannen osapuolen luokkakirjaston käyttöä:RT. Kampa, nuget-komento on seuraava:
Koodi on seuraava:
Tuotos:
Viittaus:Hyperlinkin kirjautuminen on näkyvissä.
Järjestetyt ja järjestämättömät GUID-pääavainindeksin fragmentit
Aloita luomalla kaksi taulukkoa seuraavalla skriptillä:
Testi lisää 100 000 tietopalaa, ja koodi on seuraava:
Testitulokset ovat seuraavat:
| GUID | Käytetty aika (ms) | Skannaustiheys [Paras lukumäärä: Todellinen luku], mitä suurempi arvo, sitä parempi | Looginen skannausfragmentaatio, mitä pienempi arvo, sitä parempi | Keskimääräinen sivutiheys (täysi) (Keskiarvo. Sivutiheys (täysi), mitä suurempi arvo, sitä parempi | | Järjestämätön GUID | 13367 | 12.58% [61:485] | 98.97% | 63.66% | | Tilaa GUID | 14139 | 100.00% [39:39] | 0.32% | 99.61% |
Testi lisää jälleen miljoona tietopalaa, jossa epäjärjestyksessä oleva GUID ottaa 135203 ms ja määrätty GUID 135134 ms. Varastotilan käyttö on seuraava:
Järjestämätön GUID: 36,547 MB Tilattu GUID: 26,609 MB
Viittaus:Hyperlinkin kirjautuminen on näkyvissä.
(Loppu)
|