Prasības: Izmantojot GUID kā primārās atslēgas apkopošanas indeksus, ieteicams izmantot pasūtītos GUID, jo nesakārtoti GUID izraisīs vietas izšķērdēšanu un līdz ar to samazinās lasīšanas un rakstīšanas efektivitāti.
Pārskats:
Datu bāzes GUID vērtība
Globāli unikālo identifikatoru (GUID) datu tipi SQL Server tiek attēloti pēc datu tipiemunikālsidentifikators, kurā tiek glabāta 16 baitu binārā vērtība. GUID ir binārs numurs, kura galvenais mērķis ir identifikators, kam jābūt unikālam tīklā ar daudziem datoriem daudzās vietnēs.
Gan GUID, gan SqlGuid ir veidi, kā salīdzināt dažādas GUID vērtības. SqlGuid ieviešana izmanto SQL Server uzvedību,Pēdējie seši vērtības baiti ir vissvarīgākie。
Secīgie GUID pēc būtības ir uzminami, tāpēc neizmantojiet tos drošības ziņā。
Atsauce:Hipersaites pieteikšanās ir redzama.
Datu bāzi sakārto GUID
SQL Server datu bāzē ir tādsJaunsSequentialId(), lai izveidotu sakārtotu GUID. Veidojot tabulu, varat to iestatīt kā GUID tipa lauka noklusējuma vērtību un automātiski izveidot primārās atslēgas vērtību, ievietojot jaunus datus (šo funkciju var izmantot tikai kā lauka noklusējuma vērtību, kas nav tieši izsaukta SQL).
Piemērs:
Funkciju NewSequentialId() var izmantot tikai datu bāzēs, lai gan Microsoft MSDN dokumentācijā norādīts, ka NEWSEQUENTIALID ir funkcijas Windows UuidCreateSequential iesaiņojums.
Padoms: neizmantojiet šo funkciju, ja tā ir konfidencialitātes problēma. JoIr iespējams uzminēt nākamā ģenerētā GUID vērtību, lai piekļūtu datiem, kas saistīti ar šo GUID.
Atsauce:Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
.NET izveido sakārtotu GUID
Funkcija UuidCreateSequential ir atkarīga no metodes skaitļošanas aparatūrasPēdējie 12 biti faktiski ir tīkla kartes MAC adrese。
Kods ir šāds:
Rezultāti ir šādi:
Trūkums:
- Šī metode prasa DllImport, lai izsauktu Windows bibliotēku, tāpēc tā nav starpplatforma.
- To nevar izmantot klasterizētā vidē, kur vairākas mašīnas raksta vienā datu bāzē, jo iegūtie GUID atšķirsies viens no otra (no funkcijām atkarīga skaitļošanas aparatūra), kā rezultātā indekss tiek sadrumstalots.
- Ja Windows serveris tiek restartēts, GUID var startēties zemākā diapazonā, kā rezultātā rodas indeksa sadrumstalotība.
Atsauce:
Hipersaites pieteikšanās ir redzama.
Hipersaites pieteikšanās ir redzama.
Ja izmantojat .NET programmu, lai izveidotu SQL SERVER pasūtīto GUID, ieteicams izmantot trešās puses klašu bibliotēku:RT. Ķemme, komanda nuget ir šāda:
Kods ir šāds:
Izvades:
Atsauce:Hipersaites pieteikšanās ir redzama.
Sakārtoti un nesakārtoti GUID primārās atslēgas indeksa fragmenti
Sāciet ar divu tabulu izveidi ar šādu skriptu:
Tests ievieto 100 000 datu vienību, un kods ir šāds:
Testa rezultāti ir šādi:
| GUID | Patērētais laiks (ms) | Skenēšanas blīvums [Labākais skaits: faktiskais skaits], jo lielāka vērtība, jo labāk | Loģiskās skenēšanas fragmentācija, jo zemāka vērtība, jo labāk | Vidējais lappušu blīvums (pilns) (vid. Lappuses blīvums (pilns), jo lielāka vērtība, jo labāk | | Nesakārtots GUID | 13367 | 12.58% [61:485] | 98.97% | 63.66% | | Pasūtīt GUID | 14139 | 100.00% [39:39] | 0.32% | 99.61% |
Tests atkal ievieto 1 miljonu datu vienību, ar nekārtīgu GUID aizņem 135203 ms un ordinēts GUID aizņem 135134 ms. Uzglabāšanas telpu noslogojums ir šāds:
Nesakārtots GUID: 36.547 MB Pasūtītais GUID: 26.609 MB
Atsauce:Hipersaites pieteikšanās ir redzama.
(Beigas)
|