Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
Допустим имеется порядка 100-150 табличек в базе данных. Допустим я хочу держать один sequence для генерации значения PK этих табличек. А теперь по существу, буду ли я прав в своем подходе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 10:45 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
Если ключи типа int4, а таблицы будут большие, то может банально не хватить значений ключа. А в остальном, ИМХО, в таком подходе проблем не вижу. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 11:47 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
IMHO чисто теоретически, использование одного sequence менее производительно, поскольку получение nextvalue не конкурентное, а ставится в очередь. Одна sequence очень быстр, едва ли это будет заметно даже на очень активных вставках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 11:50 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
tadminIMHO чисто теоретически, использование одного sequence менее производительно, поскольку получение nextvalue не конкурентное, а ставится в очередь. Одна sequence очень быстр, едва ли это будет заметно даже на очень активных вставках для этого есть CREATE SEQUENCE ... The optional clause CACHE cache specifies how many sequence numbers are to be preallocated and stored in memory for faster access. The minimum value is 1 (only one value can be generated at a time, i.e., no cache), and this is also the default. ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 11:55 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
Извечный вопрос. С точки зрения... базы - никаких проблем. А с точки зрения логики - приятнее (именно приятнее) чтобы каждый объект имел свою последовательность. Объяснить не смогу, просто приятнее :) Да и зачем такая заморочка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 12:04 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
К сожалению, Postgres'овский CACHE для sequence реализован не так, как бы хотелось. Этот cache живет только в пределах сессии. Если, например, вы поставили CACHE 500, и потом 3 раза соединились с БД вызвали по разу sequence и отсоединились, то при следующем коннекте sequence вам выдаст уже 1501. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 12:26 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
pamirИзвечный вопрос. С точки зрения... базы - никаких проблем. А с точки зрения логики - приятнее (именно приятнее) чтобы каждый объект имел свою последовательность. Объяснить не смогу, просто приятнее :) Да и зачем такая заморочка? Ну, с точки зрения приятности тоже могут быть доводы: - строим объектную модель, по id объекта всегда знаем его тип. - массовое восстановление данных в таблицах (частичный backup-restore) можно сделать сделав выкл./вкл. всего одного сиквенса. Но, опять таки, это не подавляющие и очень частные удобства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 12:30 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
ThamerlanК сожалению, Postgres'овский CACHE для sequence реализован не так, как бы хотелось. Этот cache живет только в пределах сессии. Если, например, вы поставили CACHE 500, и потом 3 раза соединились с БД вызвали по разу sequence и отсоединились, то при следующем коннекте sequence вам выдаст уже 1501. вроде логично все, в оракле аналогично, насколько я знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 12:34 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
tadmin[quot pamir]Ну, с точки зрения приятности тоже могут быть доводы: - строим объектную модель, по id объекта всегда знаем его тип. Как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 12:46 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
st_serg ThamerlanК сожалению, Postgres'овский CACHE для sequence реализован не так, как бы хотелось. Этот cache живет только в пределах сессии. Если, например, вы поставили CACHE 500, и потом 3 раза соединились с БД вызвали по разу sequence и отсоединились, то при следующем коннекте sequence вам выдаст уже 1501. вроде логично все, в оракле аналогично, насколько я знаюЕсли все так, как описал Тамерлан, то в оракле все не так. Там есть кэш, но, если я уж совсем не поехал умом, там не бывает такого, что из-за кэша образуются дыры в последовательностях. Да, Оракл не гарантирует, что не будет дыр, но это не из-за кэша, а из-за "нетранзакционности" последовательности - в одной сессии взяли очередной номер, в другой тоже взяли, первая откатилась. Вот и дырка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 12:52 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
st_serg ThamerlanК сожалению, Postgres'овский CACHE для sequence реализован не так, как бы хотелось. Этот cache живет только в пределах сессии. Если, например, вы поставили CACHE 500, и потом 3 раза соединились с БД вызвали по разу sequence и отсоединились, то при следующем коннекте sequence вам выдаст уже 1501. вроде логично все, в оракле аналогично, насколько я знаю В Oracle sequences кешируются глобально и не зависят от соединений, и потеряться кэш может только от рестатра базы или от flush'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 12:59 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Если что: Verba volant, scripta manent ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 13:51 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
действительно, насчет оракла - это я погорячился ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 14:12 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
pamir tadmin[quot pamir]Ну, с точки зрения приятности тоже могут быть доводы: - строим объектную модель, по id объекта всегда знаем его тип. Как?наследуем все id-ники от одной "виртуальной" (без данных) таблицы (tid). Выполнее запрос к ней SELECT tableoid FROM tid WHERE id = _id; вернет нам табличку реального хранения, т.е. "тип" объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 14:21 |
|
||
|
Буду ли я прав применив один sequence?
|
|||
|---|---|---|---|
|
#18+
assa pamir tadmin[quot pamir]Ну, с точки зрения приятности тоже могут быть доводы: - строим объектную модель, по id объекта всегда знаем его тип. Как?наследуем все id-ники от одной "виртуальной" (без данных) таблицы (tid). Выполнее запрос к ней SELECT tableoid FROM tid WHERE id = _id; вернет нам табличку реального хранения, т.е. "тип" объекта.Здорово. Не учел эффекта наследования (все-таки оракл для меня роднее, а там такого нет) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2007, 14:27 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=34965120&tid=2004808]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
76ms |
get topic data: |
15ms |
get forum data: |
4ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 451ms |

| 0 / 0 |
