🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Co wybrac - Identity czy sekwencje

#82884
From: Pancio
Date: Tue, 13 Feb 2018 11:24
14 lines
2652 bytes
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
Technical Details
Message-ID: <b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!ecngs!feeder.ecngs.de!border1.nntp.ams1.giganews.com!nntp.giganews.com!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!o66no1313639ita.0!news-out.google.com!s63ni3172itb.0!nntp.google.com!o66no1313636ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Received: by 10.107.201.195 with SMTP id z186mr575302iof.129.1518521083308;        Tue, 13 Feb 2018 03:24:43 -0800 (PST)
X-Received: by 10.157.115.205 with SMTP id m13mr31138otk.10.1518521083094; Tue, 13 Feb 2018 03:24:43 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!takemy.news.telefonica.de!telefonica.de!ecngs!feeder.ecngs.de!border1.nntp.ams1.giganews.com!nntp.giganews.com!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!o66no1313639ita.0!news-out.google.com!s63ni3172itb.0!nntp.google.com!o66no1313636ita.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.delphi.bazy-danych
Date: Tue, 13 Feb 2018 03:24:42 -0800 (PST)
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=94.154.31.130; posting-account=7yo-vwoAAACTPHSJeUQ3HOShk2-PA34z
NNTP-Posting-Host: 94.154.31.130
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b103c4b1-8620-403a-a902-5e4ecd5fe355@googlegroups.com>
Subject: Co wybrac - Identity czy sekwencje
From: Pancio <witek.skowronski@gmail.com>
Injection-Date: Tue, 13 Feb 2018 11:24:43 +0000
X-Received-Body-CRC: 557284303
X-Received-Bytes: 2357
Lines: 13
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit