Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Всем привет! А кто как генерит сабж? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 12:48 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
id char(36) deafult uuidtostr(newid()) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 13:06 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
id integer not null default autoincrement ____________________________________ - Гарфилд, мышь! - Спасибо, я сыт! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 13:25 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
uuidtostr() это что за зверь? чёт не могу найти, DynaText говорит что незнает такого.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 14:36 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Кстати справедливости ради стоит сказать что сабж касается ASE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 14:51 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Костя П.О. пишет: > Кстати справедливости ради стоит сказать что сабж касается ASE с этого и надо было начинать, а не заставлять добрых людей зря напрягаться. Лень прочитать заголовок первого топика? Или однако чукча писатель, а не читатель? Читай документацию на предмет identity. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 15:29 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Александр ГoлдунЧитай документацию на предмет identity. мне не суть интересна теория. хотя без неё никуда! интересуют как практические примеры так и теория. кого-то устраивает хаотичный ключ базирующийся на genid, кто-то инкрементирует. в моём комплексе используется составной ключ. типа: - 6 символов время - 2 сивола код комплекса - 4 символа счётчик ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 16:16 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Костя П.О. Александр ГoлдунЧитай документацию на предмет identity. мне не суть интересна теория. хотя без неё никуда! интересуют как практические примеры так и теория. кого-то устраивает хаотичный ключ базирующийся на genid, кто-то инкрементирует. в моём комплексе используется составной ключ. типа: - 6 символов время - 2 сивола код комплекса - 4 символа счётчик И зачем такой большой составной ключ, если IDENTITY делает ровно столько, сколько нужно ? И при чем тут теория, когда любой сервер имеет четко описанный функционал, который и нужно стремиться использовать в практике, а как раз не придумывать теории ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2006, 19:45 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
IDENTITY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2006, 11:24 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
ASCRUSИ зачем такой большой составной ключ, если IDENTITY делает ровно столько, сколько нужно? ну... я всей картины не знаю, но уверен что более менее правильно понимаю суть такого подхода. Так как имеется N комплексов все они возможно связываются в некой единой точке. Код комплекса позволяет определить к какому комплексу относится событие, идентити наврядли это предоставит. а время и счётчик это уже вытекающее. зы если я правильно конечно понимаю суть.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 17:58 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
ASCRUSИ зачем такой большой составной ключ, если IDENTITY делает ровно столько, сколько нужно? Также есть ещё один момент. Допустим по факту инсерта мне необходим примарикей для каких-то действий. Как я его получу если будет допустим автоинкремент? селест макс? по идее это криво. Предполагаю что с идентити ситуация таже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 18:15 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Костя П.О. пишет: > Также есть ещё один момент. Допустим по факту инсерта мне необходим > примарикей для каких-то действий. Как я его получу если будет допустим > автоинкремент? селест макс? Ни в коем случае! См. в хелпах про переменную @@identity Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 18:17 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Костя П.О. ASCRUSИ зачем такой большой составной ключ, если IDENTITY делает ровно столько, сколько нужно? Также есть ещё один момент. Допустим по факту инсерта мне необходим примарикей для каких-то действий. Как я его получу если будет допустим автоинкремент? селест макс? по идее это криво. Предполагаю что с идентити ситуация таже. Лучше не предполагать, а все таки читать документацию и впервую очередь искать уже готовое решение. Избежите множества ошибок, которые потом могут выйти боком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2006, 18:25 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Александр ГoлдунНи в коем случае! См. в хелпах про переменную @@identity Posted via ActualForum NNTP Server 1.3 сенкс! такс, пошёл штудировать буки :) ASCRUSЛучше не предполагать, а все таки читать документацию и впервую очередь искать уже готовое решение. Избежите множества ошибок, которые потом могут выйти боком Эх, кто б спорил:) Просто есть куча существующих комплексов(с генерацией примарикея как описано выше) мной на данный момент разрабатывается новый. Вот и сижу и думаю, быть как все:) или выделеться и сделать "правильно" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 12:45 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Костя П.О.используется составной ключ. типа: - 6 символов время - 2 сивола код комплекса - 4 символа счётчик Если БД распределенная, а потом реплицируется в одну центральную, то, IMHO, самое нормальное решение. А по поводу где брать Костя П.О.4 символа счётчик - тынць _________________ "Helo, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2006, 22:53 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Поделюсь извращениями по поводу генирации ключей для ASE. таблица: Код: plaintext 1. 2. 3. 4. Код: plaintext Эта процедура вызывалась через Remote Server у которого Server class = sql_server и для ASE версии ниже 12 этот вызов был безтранзакционным что НЕ приводило к блокировкам при наплыве записей в разные таблицы. И все было безоблачным пока не поставили версию 12. И тут начался геморой. Чтоб не рушить систему (а она большая), изменили примари кей: Код: plaintext блокировок нет, но шибка дублирования ключа есть. поэтому делаем несколько раз до успешного выполнения комманды. Вот как бывает когда не пользуются стандартом! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2006, 11:27 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
ASE 12.5.3 Номер версии очень важен. 1) IDENTITY Только обязательно задать опцию with identity_gap = 1 или что-то около того взависимости от частоты добавления. А то он вам такого нагенерит. 2) Способ описанный Dmitry. Имеет недостаток увелечения конкуренции между процессами. 3) newid(). Тип поля varbinary(16) или char(32) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2006, 11:46 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Поправочка для случая 3) тип varbinary(16) кажется не катит. Только char(32) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2006, 14:26 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Dmitry.... Эта процедура вызывалась через Remote Server у которого Server class = sql_server и для ASE версии ниже 12 этот вызов был безтранзакционным что НЕ приводило к блокировкам при наплыве записей в разные таблицы. И все было безоблачным пока не поставили версию 12. И тут начался геморой. ... Даже с set transactional_rpc off (или для всего сервера enable xact coordination=0) блокировало? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 03:24 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
sn1251Даже с set transactional_rpc off (или для всего сервера enable xact coordination=0) блокировало? Уже не помню точно. Но кажется мы перепробовали все. и даже в сайбейс писали. нам ответили что нельзя безтранзакционно вызвать проц, кроме как на серверах какого-то там класса которые не сайбейс. возможно это был глюк 12.5.0.3 но он был на продакшин базах - решать надо быо быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 10:29 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
А зачем нужна была внетранзакционность? Я наоборот сделал все под отдельной транзакуцией. Как настоящая IDENTITY - кликает в любом случае. Правда количество операций у меня мизерное, так что производительности это не помеха. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 17:27 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
Mike EvteevА зачем нужна была внетранзакционность? в одной транзакции обрабатывается около 30 таблиц... и одновременных конектов около 50, и все эти ID-шки лежат в одной таблице: взаимных блокировок не избежать. По поводу Identity: если вставить запись в таблицу с идентити и откатить транзакцию то значение идентити не откатится. так что я-бы сказал что генерация идентити нетранзакционная операция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 11:15 |
|
||
|
Генерация ID для примари кея
|
|||
|---|---|---|---|
|
#18+
автор По поводу Identity: если вставить запись в таблицу с идентити и откатить транзакцию то значение идентити не откатится. так что я-бы сказал что генерация идентити нетранзакционная операция. Дак я же об этом и говорю... Поскольку подручными средствами вне транзакции выполнить нельзя, то все вынес в отдельную транзакцию, которая всегда коммитится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 18:56 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33469270&tid=2013130]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
50ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 374ms |

| 0 / 0 |
