🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82907

Re: Co wybrac - Identity czy sekwencje

#82907
From: Miroo
Date: Wed, 21 Feb 2018 07:50
31 lines
3496 bytes
W dniu 2018-02-19 o 18:28, Roman Tyczka pisze:
> On Mon, 19 Feb 2018 17:36:02 +0100, wloochacz wrote:
>
>>> Początkowo, właściwie dla prób wykorzystywałem GUID. Ten brak sekwencyjności nie bardzo mi przeszkadzał bo user pyta zwykle o różną kolejność danych.
>> Skoro tak piszesz, to chyba nie do końca rozumiesz jak działa baza
>> relacyjna.
>>
>>> Chciałem zbudować uniwersalny ID łańcuchowy w którym zakodowany byłby czas i losowość. Udało mi się opracować identyfikator 12 znakowy np. wygenerowany w tym momencie: "1OeS9r2JykUj". Mogę z niego odczytać czas powstania z dokładnością do dwóch milisekund. Czas zawarty jest w członie "1OeS9r". Stosuję te identyfikatory mniej więcej od czerwca 2005 roku i jeszcze nigdy w żadnej bazie nie miałem błędu powstania dwóch takich samych identyfikatorów.
>> Unikalność to nie problem, ale co z sekwencyjnością?
>
> Tak z ciekawości... po co sekwencyjność w PK? PK ma za zadanie gwarantować
> unikalność i to jest jego fundamentalna cecha. Baza i tak jak potrzeba to
> ma jakieś kolumny z timestampem czy innym kluczem trzymającym sekwencyjność
> w jakimś kontekście typu data urodzenia, data sprzedaży, numer kolejny
> dokumentu sprzedaży itp. Po co więc tak bardzo forsujesz konieczność
> posiadania sekwencyjności w PK?
>

O ile dobrze pamiętam to np w MSSQL rekordy tabeli są ułożone wg klucza 
głównego i wg niego dzielone na strony.
Gdy wstawiasz nowy rekord z PK > max(PK) to się po prostu dopisuje na 
końcu, jeśli min(PK) < PK < max(PK) to rekord wstawiany jest w środek i 
dane trzeba przesuwać, często wstawiać nowe strony w środek tabeli, a to 
mocno wpływa na wydajność i powoduje dużą fragmentację bazy (co też 
wpływa na wydajność).

GUID (sekwencyjny czy nie) ma jeszcze jedną dużą wadę - rozmiar. Przez 
duży rozmiar w cache mieści znacznie mniej informacji (np o joinach) i 
serwer częściej musi sięgać do danych fizycznych na dysku.

Pozdrawiam
Technical Details
Message-ID: <5a8d24c6$0$583$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com> <b32fab82-19c1-452a-a5c8-45943fa76db7@googlegroups.com> <5a8561ba$0$664$65785112@news.neostrada.pl> <24ef9b49-567a-44b5-acbd-44352e2701d0@googlegroups.com> <d84fb96f-7111-4b1a-b794-e856be8cca9e@googlegroups.com> <ecf4861c-5c5c-4ea8-85c6-2a9277b41a25@googlegroups.com> <97820f04-20f3-4421-a734-bb41bec12300@googlegroups.com> <5a87f6e0$0$559$65785112@news.neostrada.pl> <ca7d63b4-f772-4935-b7f8-2f6cf13405f0@googlegroups.com> <5a8afcf3$0$589$65785112@news.neostrada.pl> <11zhaiuujxyq.dlg@tyczka.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Subject: Re: Co wybrac - Identity czy sekwencje
Newsgroups: pl.comp.lang.delphi.bazy-danych
References: <b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com> <b32fab82-19c1-452a-a5c8-45943fa76db7@googlegroups.com> <5a8561ba$0$664$65785112@news.neostrada.pl> <24ef9b49-567a-44b5-acbd-44352e2701d0@googlegroups.com> <d84fb96f-7111-4b1a-b794-e856be8cca9e@googlegroups.com> <ecf4861c-5c5c-4ea8-85c6-2a9277b41a25@googlegroups.com> <97820f04-20f3-4421-a734-bb41bec12300@googlegroups.com> <5a87f6e0$0$559$65785112@news.neostrada.pl> <ca7d63b4-f772-4935-b7f8-2f6cf13405f0@googlegroups.com> <5a8afcf3$0$589$65785112@news.neostrada.pl> <11zhaiuujxyq.dlg@tyczka.com>
From: Miroo <brak_emaila@brak.brak.i.juz>
Date: Wed, 21 Feb 2018 08:50:23 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0
MIME-Version: 1.0
In-Reply-To: <11zhaiuujxyq.dlg@tyczka.com>
Lines: 31
Message-ID: <5a8d24c6$0$583$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 91.197.153.32
X-Trace: 1519199430 unt-rea-a-02.news.neostrada.pl 583 91.197.153.32:8403
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit