Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 timestamp  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Здравствуйте.
вот задумал делать контроль изменений данных и версионность
и подумал что вроде timestamp или что-то подобное может пригодится
но некоторые моменты не до конца понимаю
правильно ли сказать что автоматически присваиваемый timestamp постоянно возрастает?
(в пределах базы)
т.е присвоенный позже при сравнении всегда больше чем присвоенный ранее?

где предел у поля timestamp?
если его юзать достаточно активно то ведь можно и упереться.
вот например для штатной репликации (в sql2k) используют msrepl_tran_version uniqueidentifier NOT NULL
чем он лучше?
правильно ли сказать что uniqueidentifier возрастает?

Спасибо.
26 май 09, 17:40    [7230613]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
Crimean
Member

Откуда:
Сообщений: 13148
> вроде timestamp или что-то подобное может пригодится

да

> но некоторые моменты не до конца понимаю

msdn, много написано, все по делу :)

> правильно ли сказать что автоматически присваиваемый timestamp постоянно возрастает?
(в пределах базы)

да

> т.е присвоенный позже при сравнении всегда больше чем присвоенный ранее?

да

> где предел у поля timestamp?

0xFFFFFFFFFFFFFFFF

> если его юзать достаточно активно то ведь можно и упереться.

да, но int переполнится сильно раньше. хотя солнце погаснет позже

> правильно ли сказать что uniqueidentifier возрастает?

нет
26 май 09, 17:48    [7230666]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4537
+ Чем он лучше... - предполагается, что один гарантирует уникальность в пределах базы, а второй всей вселенной :)
26 май 09, 17:50    [7230687]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Crimean
>
> где предел у поля timestamp?
0xFFFFFFFFFFFFFFFF
> если его юзать достаточно активно то ведь можно и упереться.
да, но int переполнится сильно раньше. хотя солнце погаснет позже
спасибо
а что вообще будет когда он таки переполнится?
вопрос в том что вот завяжешься за него, пройдет десяток лет и вдруг кирдык ...?
или надо например ежегодно его самому как-то перезапускать и всю базу переинициализировать где там оно встречается?
и можно ли его вообще переинициализировать?
26 май 09, 17:56    [7230721]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
buser
+ Чем он лучше... - предполагается, что один гарантирует уникальность в пределах базы, а второй всей вселенной :)
ну это очевидно и мне вроде как тут не нужно
еще оно вроде подлиннее будет и парится с его переполнением совсем не надо
с учетом того что оно не возрастает оно мне не интересно
26 май 09, 17:59    [7230739]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
leov
а что вообще будет когда он таки переполнится?
вопрос в том что вот завяжешься за него, пройдет десяток лет и вдруг кирдык ...?


Вы издеваетесь, что ли. 8 байт...
26 май 09, 18:00    [7230744]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
pkarklin
leov
а что вообще будет когда он таки переполнится?
вопрос в том что вот завяжешься за него, пройдет десяток лет и вдруг кирдык ...?
Вы издеваетесь, что ли. 8 байт...
да нафиг мне вообще тут издеваться. сам не понимаю и спрашиваю у умных людей.
ну вон 4 байта под IP адреса закладывали и думали что навсегда. теперь вот уже 16 закладывют
2 цифры под год закладывали. думали что никто до 2000 года не доживет. потом с проблемой 2000 трахались...
дак есть средства перезапускать timestamp или нет?
как он себя поведет при переносе базы на другой сервер?
как он себя поведет при трансфере базы?
26 май 09, 18:09    [7230795]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
Crimean
Member

Откуда:
Сообщений: 13148
> а что вообще будет когда он таки переполнится?

хз. лет за 10 не переполнился еще, хотя первые 4 байта уже перерос

> дак есть средства перезапускать timestamp или нет?

для базы - есть. dbcc dbts. только в таблицах данные останутся - с ними что делать?
хотя.. можно конечно столбцы грохнуть и создать по-новой - перенумеруются по идее

> как он себя поведет при переносе базы на другой сервер?

шикарно. как и все другие данные

> как он себя поведет при трансфере базы?

заполнится в новой базе "своими" значениями по общим правилам
26 май 09, 18:14    [7230830]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Crimean
> а что вообще будет когда он таки переполнится?
хз. лет за 10 не переполнился еще, хотя первые 4 байта уже перерос
ну это в общем от работы зависит
Crimean

> дак есть средства перезапускать timestamp или нет?
для базы - есть. dbcc dbts. только в таблицах данные останутся - с ними что делать?
хотя.. можно конечно столбцы грохнуть и создать по-новой - перенумеруются по идее
> как он себя поведет при переносе базы на другой сервер?
шикарно. как и все другие данные
т.е значит ежели базу тащим целиком то она с собой тащит и тот timestamp который она выдаст следующим?
Crimean

> как он себя поведет при трансфере базы?
заполнится в новой базе "своими" значениями по общим правилам

т.е сами значения полей не отрансферятся, а назначаться новые?
в каком порядке они назначаться?
скорее всего в том в каком будут трансферится
значит нельзя завязываться за этот порядок...
26 май 09, 18:24    [7230872]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381

> да нафиг мне вообще тут издеваться. сам не понимаю и спрашиваю у умных
> людей.
> ну вон 4 байта под IP адреса закладывали и думали что навсегда. теперь
> вот уже 16 закладывют
> 2 цифры под год закладывали. думали что никто до 2000 года не доживет.
> потом с проблемой 2000 трахались...

гм. ну, можно же калькулятор взять и прикинуть.
8 байт - это 2^64 значений.
2^64 = 18446744073709551616
в году у нас ~ 60*60*24*365 = 31536000 секунд.
если предположить, что в секунду генерируется, скажем, чтоб не стесняться,
миллион новых значений (я себе, признаться, слабо такое представляю),
то для исчерпания timestamp понадобится:

18446744073709551616 / (31536000 * 1000000) = 584 942 лет.

хватит? :)

Posted via ActualForum NNTP Server 1.4

26 май 09, 18:28    [7230900]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
daw,

убедительно. спасибо

осталось уточнить чего будет при трансфере и можно программировать
26 май 09, 18:32    [7230922]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
сделал тест и вроде нормально оттрансферилось
в общем юзаю timestamp

uniqueidentifier по моему все-же возрастает в пределах базы
вроде в BOL написано что его там можно сравнивать на больше меньше равно
дак нахрен бы его было сравнивать если бы они не были последовательностью
26 май 09, 19:04    [7231034]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
Crimean
Member

Откуда:
Сообщений: 13148
это не mysql :) "трансфер" тут - это bcp out + bcp in, это переливка данных
хотя для bulk insert можно указать сохранение timestamp
но вообще-то базы переносят как backup / restore или как detach / attach в худшем случае :)
26 май 09, 19:06    [7231038]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
Crimean
Member

Откуда:
Сообщений: 13148
> сделал тест и вроде нормально оттрансферилось
> в общем юзаю timestamp

обязательно гуглить "min_active_rowversion"

> uniqueidentifier по моему все-же возрастает в пределах базы
> вроде в BOL написано что его там можно сравнивать на больше меньше равно
> дак нахрен бы его было сравнивать если бы они не были последовательностью

по-моему, тут сильно накурено :)
26 май 09, 19:15    [7231064]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Crimean
это не mysql :) "трансфер" тут - это bcp out + bcp in, это переливка данных
хотя для bulk insert можно указать сохранение timestamp
но вообще-то базы переносят как backup / restore или как detach / attach в худшем случае :)
перенос базы целиком я делаю через backup/restore
но иногда пересоздаю базу из скрипта и трансферю в нее данные через DTC
такое происходит в периоды больших апдейтов структуры
да и вообще для профилактики полезно бывает
база после таких операций обычно шустрее работает
27 май 09, 00:14    [7231802]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
Crimean
> сделал тест и вроде нормально оттрансферилось
> в общем юзаю timestamp

обязательно гуглить "min_active_rowversion"

> uniqueidentifier по моему все-же возрастает в пределах базы
> вроде в BOL написано что его там можно сравнивать на больше меньше равно
> дак нахрен бы его было сравнивать если бы они не были последовательностью

по-моему, тут сильно накурено :)
не понял что вы имели в виду
uniqueidentifier являются последовательностью или нет?
27 май 09, 00:17    [7231809]     Ответить | Цитировать Сообщить модератору
 Re: timestamp  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5499
Блог
leov
по-моему, тут сильно накурено :)
не понял что вы имели в виду
uniqueidentifier являются последовательностью или нет?[/quot]Ну прочитайте уже про newid() и newsequentialid() в справке...
27 май 09, 00:58    [7231858]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить