Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
О производительности
|
|||
|---|---|---|---|
|
#18+
Привет всем!!! Озадачился, что оставить это if update(tablename) begin declare @newcode varchar(100), @id int declare @temp table (id int identity, code varchar(20)) insert into @temp select code from inserted where code in ('code_1', 'code_2', 'code_3', 'code_4', 'code_5') while exists(select top 1 * from @temp) begin select top 1 @id = id, @newcode = code from @temp delete from @temp where id = @id exec('update shtat set ' + @newcode + ' = null where id is not null') end end или это if update(tablename) begin declare @newcode varchar(100) declare cur cursor local fast_forward for select code from inserted where code in ('code_1', 'code_2', 'code_3', 'code_4', 'code_5') open cur fetch next from cur into @newcode exec('update shtat set ' + @newcode + ' = null where id is not null') while @@fetch_status = 0 begin fetch next from cur into @newcode exec('update shtat set ' + @newcode + ' = null where id is not null') end close cur deallocate cur end QA показывает примерно одинаковое время, ну может в среднем лучше первый вариант. Посоветуйте плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2001, 09:11 |
|
||
|
О производительности
|
|||
|---|---|---|---|
|
#18+
Если рассматривать Вашу задачу отвлеченно, не зная окружающего кода и перспектив развития, то варианты действительно эквивалентны. На тех объемах данных, для которых имеет смысл использовать таблицы-переменные, курсоры тоже не показывают заметных тормозов. Лично мне кажется более изящным первый вариант, хотя в данных условиях это чисто качественная оценка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2001, 00:47 |
|
||
|
О производительности
|
|||
|---|---|---|---|
|
#18+
Спасибо Дед Мазай за мнение. Только я не понял про таблицы-переменные. Вот почему. В ВОL сказано, что курсор это удар по производительности. Про таблицы-переменные я этого не читал нигде. Да и вряд ли прочту потому как доступ к данным в оперативной памяти (к таблицам-переменным) гораздо быстрее чем доступ к данным на диске. Поясните пожалуйста, что Вы имеете в виду ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2001, 03:20 |
|
||
|
О производительности
|
|||
|---|---|---|---|
|
#18+
Наверное проще всего написать так: update shtat set code_1 = null, code_2 = null, code_3 = null, code_4 = null, code_5 = null where id is not null Я конечно понимаю, что на самом деле запрос сложнее. Но на мой взгляд это ненормально когда для доступа к полям таблицы Вы используете еще одну таблицу. Сделайте тогда таблицу shtat с двумя ключевыми полями (id и code_id) и одним полем данных. Тогда запрос будет еще проще: update shtat set code = null where id is not null Или так нравиться циклы писать? А Дед Маздай имел ввиду что для 5-ти записей всё равно как писать - оба варианта выполнятся мгновенно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2001, 06:22 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32009391&tid=1826203]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
49ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 366ms |

| 0 / 0 |
