Article View: pl.comp.lang.delphi.bazy-danych
Article #82893Re: Co wybrac - Identity czy sekwencje
From: zpksoft
Date: Thu, 15 Feb 2018 08:09
Date: Thu, 15 Feb 2018 08:09
19 lines
3226 bytes
3226 bytes
W dniu wtorek, 13 lutego 2018 12:24:43 UTC+1 użytkownik Pancio napisał: > Witam, > Zaczynam bawic sie w pisane aplikacji w srodowisku Delphi XE7 i silniku MS SQL w wersji Express 2014 (taka wersja jest w firmie) lub 2016 (byc moze bedzie). > Chodzi mi o to, ze w kilku tabelach uzytkownicy powinni widziec numeracje rekordow ID. O ile do wersji MS SQLa 2008 R2 mozna bylo zastosowac IDENTITY to po wersji 2012 jest juz nieco bardziej problematyczne. > Otoz po restarcie silnika numeracja ID przeskakuje o 1000 rekordow. Nie jest to oczywiscie koniec swiata, ale tez nie wyglada najlepiej. > Poczytalem nieco o sekwencjach i znalazlem taki oto przykad: > CREATE SEQUENCE s1 AS INT START WITH 1 NO CACHE > CREATE TABLE t1 (Id INT PRIMARY KEY DEFAULT NEXT VALUE FOR s1, col INT NOT NULL) > > Problem w tym, ze spada troche wydajnosc bazy danych przy wprowadzaniu wiekszej liczby rekordow. Dlatego mam pytanie do Was? > Jakiego rozwiazania uzywacie w swoich projektach - z natury rzeczy Identity odpada, pozostaja sekwencje, a moze po prostu przed dodaniem rekordu powinienem wywolac SELECT Count(*) i sprawdzic ile rekordow jest w tabeli, po czym dodac +1. > Kazde rozwiazanie poprawnie dzialajace jest dobre, ale wiadomo, ze sa dobre i lepsze. Dlatego tez postanowilem zapytac sie bardziej doswiadczonych kolegow. > > -- > Pancio W ogóle nie używam identyfikatorów liczbowych. Wyłącznie łańcuchowe. Zero problemów. Jeśli masz wybór to zastanów się nad tym. Bardzo duże bazy są oparte tylko na takich identyfikatorach. Zobacz np. filmiki na Youtube: https://youtu.be/jOqktpxdGxg <- tu ID=jOqktpxdGxg. Nie muszą martwić się że gdzieś w sieci ktoś podwójnie zlicza ID. Dodatkowym atutem jest to że taki identyfikator tworzy klient więc może posłużyć się nim zanim wpisze rekord do bazy (!). Paweł
Technical Details
Message-ID:
<b32fab82-19c1-452a-a5c8-45943fa76db7@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!o66no83890ita.0!news-out.google.com!s63ni214itb.0!nntp.google.com!o66no83884ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.107.38.211 with SMTP id m202mr5593307iom.43.1518682169872; Thu, 15 Feb 2018 00:09:29 -0800 (PST) X-Received: by 10.157.11.195 with SMTP id 61mr61341oth.7.1518682169581; Thu, 15 Feb 2018 00:09:29 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!o66no83890ita.0!news-out.google.com!s63ni214itb.0!nntp.google.com!o66no83884ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi.bazy-danych Date: Thu, 15 Feb 2018 00:09:29 -0800 (PST) In-Reply-To: <b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=217.99.218.127; posting-account=8ND_mgoAAAD5J9y9fnaTB1Kcu7xKWk7Q NNTP-Posting-Host: 217.99.218.127 References: <b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <b32fab82-19c1-452a-a5c8-45943fa76db7@googlegroups.com> Subject: Re: Co wybrac - Identity czy sekwencje From: zpksoft <zpksoft@op.pl> Injection-Date: Thu, 15 Feb 2018 08:09:29 +0000 Lines: 39 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit