Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SEQUENCE  [new]
mssql2008_
Guest
в 2008 еще не поддерживается, я правильно понял?
14 ноя 11, 14:21    [11593168]     Ответить | Цитировать Сообщить модератору
 Re: SEQUENCE  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
mssql2008_
в 2008 еще не поддерживается, я правильно понял?
Пока в Denaly CTP появился
А что, очень нужен?
14 ноя 11, 14:24    [11593191]     Ответить | Цитировать Сообщить модератору
 Re: SEQUENCE  [new]
mssql2008_
Guest
iap,
базу с firebird'а переделываю под mssql и там генерация нового номера была через SEQUENCE(не id, т.е. id само по себе + поле с номером), есть варианьы кроме доп.таблицы с identity
14 ноя 11, 14:29    [11593236]     Ответить | Цитировать Сообщить модератору
 Re: SEQUENCE  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
mssql2008_
iap,
базу с firebird'а переделываю под mssql и там генерация нового номера была через SEQUENCE(не id, т.е. id само по себе + поле с номером), есть варианьы кроме доп.таблицы с identity
Ну вот ещё
14 ноя 11, 14:35    [11593303]     Ответить | Цитировать Сообщить модератору
 Re: SEQUENCE  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
iap
А что, очень нужен?
Ага. Но пока только надежды.
У IDENTITY столько проблем как технических, так и идеологических.
Вот делаю я вставку списка некоторых абстрактных сущностей. Хочеца чтобы всё было просто и работало на любых условиях.

Вот с каждой версией становится проще с процедурами работать идеологически. А на MERGE вообще молится можно. Хорошо бы вообще от PIPE избавиться.
Например меня жутко бесит, что OUTPUT и его INTO имеют идиотические требования.
Хотя при этом:
1) PIPE для триггеров запрещён на уровне сервера
2) Всё равно возникают ошибки и прерывания ввода-вывода PIPE и после оного
3) Всё равно проверяются все ограничения в иных обстоятельствах

И где, где изливания разрабов по идеологическим делемам?!!! Closed-Source must die.
А нам ещё десятилетия расти до базовых основ в культуре Open-Source. Феодализм хренов.
14 ноя 11, 17:52    [11595219]     Ответить | Цитировать Сообщить модератору
 Re: SEQUENCE  [new]
step_ks
Member

Откуда:
Сообщений: 936
Mnior
Хорошо бы вообще от PIPE избавиться.

Эт вы что имеете ввиду?
15 ноя 11, 12:21    [11598292]     Ответить | Цитировать Сообщить модератору
 Re: SEQUENCE  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
step_ks
Mnior
Хорошо бы вообще от PIPE избавиться.
Эт вы что имеете ввиду?
Прямо и имею - "пипелайн корень всех зол". Ну т.е. пипелайн породил очень много косяков, костылей и ограничений. А реально используется только для возрата клиенту (во всём другом: или как костыль или как признак криворукости системы).
Если более формализовать (ограничить) взаимодействие с клиентом, то мы получим полноценную систему без "протечек", более декларативную и более гибкую и более простую, понятную и контролируюмую.

Например, как только сделают READWRITE для табличных параметров, я на митинг выйду протви PIPE.
А возможности оптимизации станут безграничными.

Или вы не знаете что такое PIPE? (а SELECT то куда-то направляется, и как вы думаете как?!)

SEQUENCE потенциально одно из таких формализаций. По настоящему проблема IDENTITY именно в реализации. Если бы это свойство было скозным, и возврат значений работал, то можно было и так жить. Но SEQUENCE нааамного более универсальней и гибче. Хотя не на столько, чтоб например можно было ставить Unique на пользовательский тип назависимо от объектов его содержащих.
Вот например RowVersion (TimeStamp) гарантированно уникальный, но это его свойство не используются оптимизатором.

Поэтому у меня вся надежда от SEQUENCE именно в итерфейсе пользовательского взаимодействия.
15 ноя 11, 14:23    [11599467]     Ответить | Цитировать Сообщить модератору
 Re: SEQUENCE  [new]
step_ks
Member

Откуда:
Сообщений: 936
Mnior
Например, как только сделают READWRITE для табличных параметров, я на митинг выйду протви PIPE.
А возможности оптимизации станут безграничными.

А мне вот кажется лишним на каждый возврат данных клиенту городить временную таблицу и грузить этим tempdb.

Mnior
Или вы не знаете что такое PIPE? (а SELECT то куда-то направляется, и как вы думаете как?!)

Да чот сразу не въехал про что вы.
15 ноя 11, 14:37    [11599651]     Ответить | Цитировать Сообщить модератору
 Re: SEQUENCE  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Для полного понимания смотрим на параметр RESULT SETS.
Смысл не тот, но наводит мысли в нужном направлении.

step_ks
А мне вот кажется лишним на каждый возврат данных клиенту городить временную таблицу и грузить этим tempdb.
Как раз я на этом (табличные переменные) не настаиваю, и даже наоборот. Согласен слово READWRITE неправильно подобранно. Должно быть именно OUT и только вставка данных.

С одной стороны при вызове процедуры на самом скуле палюбэ будут и нужно обычные табличные переменные. Оптимизация именно в том, что если выходной параметр не задан (сылка на такую переменную пуста), то и реальные данные никуда и не вставляются (не генерируются).

А с другой, если вызвается с клиента соответственным API EXEC, то клиент должен обрабатывать принятие данных. И отличие от PIPE то, что принимается не фиг знает что из одной трубы, а конкретные данные (заранее известной структуры) в конретные места (переменные клиента). Я уже не говорю о том, что гарантированно скорость приёма данных возрастёт. (Думаю понятно почему)

И вариант с обрывом (по ошибке) довольно однозначный. т.к. перемынные возврата внешние. Следовательно, если в процедуте не дошло до "возврата" второго (последуюших) рекордсета, то соответствуюшие таблицы просто тупо пусты.
Сейчас обрыв PIPE очень глючный с особенностями и конкретно протекает.
15 ноя 11, 20:52    [11602466]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить