![]() |
|
Модераторы: Akina |
![]()
|
|
| Kolia |
|
||||||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 132 Регистрация: 11.7.2003 Где: Вильнюс Репутация: нет Всего: нет |
Объясню суть проблемы. Имеется таблица. ID для нее генерировался по определенному алгоритму и имел тип VARCHAR(20). Еще до INSERT'a генерировался этот ID и вместе с INSERT'ом шел в таблицу
Почему было организовано именно так я сказать не могу. Не учавствовал в этом. Выяснилось, что такой подход в ряде случаев себя не оправает. Придумал такой способ генерации: вставить поле id_identity типа IDENTITY и повесить тригер на INSERT. Тригер берет значение id_identity новой строки, конвертирует его в VARCHAR(20) и вставляет в ID новой строки
В итоге я имею довольно внушительное снижение производительности :( В эту таблицу вставляют довольно много данных. Ограничение такое, что PRIMARY KEY (ID) должен остаться старым, т.е. такого же типа. Иначе потребуется переписка огромного числа строк кода. Вот у меня такой вопрос: можно ли узнать IDENTITY до того, как поизойдет запись в таблицу. То есть я хочу в тригере получить IDENTITY, из него сделать ID, и полученую строку уже пихать в базу. В варианте, который привел выше, этот участок и дает тормоз (~0.3 сек.)
--------------------
Риспект |
||||||
|
|||||||
| SergKO |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 14.3.2005 Репутация: 17 Всего: 20 |
||||
|
||||
| Kolia |
|
||||
|
Шустрый ![]() Профиль Группа: Awaiting Authorisation Сообщений: 132 Регистрация: 11.7.2003 Где: Вильнюс Репутация: нет Всего: нет |
Индексировано. Но быстрее не работает --------------------
Риспект |
||||
|
|||||
| SergKO |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 231 Регистрация: 14.3.2005 Репутация: 17 Всего: 20 |
||||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |