Re[2]: [MSSQL]Отслеживание изменений в чужой базе без тригге
От: Sshur Россия http://shurygin-sergey.livejournal.com
Дата: 28.08.09 08:04
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>>Мне нужно быстро получить таблицу (Код_ТС int, Последняя_путевая_точка int). Я могу сделать это запросом — но, как ни крути, получается время 0,5 — 0,7 сек, что неприемлемо.

S>Непонятно, почему. Приведите запрос, который вы выполняете.

Привести запрос не получится Проблема еще в том, что запрос может бы и получилось бы ускорить за счет индексов, но и их нельзя добавить по тем же причинам, что и триггер.

S>> Идеально подошел бы триггер, проставляющий значения в какую-то мою таблицу — но модифицировать базу нельзя.

S>Почему нельзя?

Потому что база чужая, поддержкой занимаются другие люди, изменения убьются при ближайшем же апдейте и вообще внесение изменений запрещено лицензией.


S>>Пока, единственным вариантом видится свое маленькое приложение, которое будет периодически (скажем, раз в секунд 10) опрашивать чужую таблицу и строить нужную мне. Задержка в 10 сек. приемлема, так как мне надо быстро получить табличку, пусть и с немного устаревшими данными.

S>Почему вы думаете, что получение данных из вашей таблички будет быстрее?

Потому что там будет не 10 тыс строк, а порядка 100. Изначальная табличка выглядит примерно как

Код_ТС Путевая_точка Время
1 1 00:00
1 2 00:10
1 3 00:15
1 4 null
1 5 null
2 1 00:00
2 2 00:07
2 3 null
2 4 null


для каждого ТС порядка 1000 строк. А мне надо, чтобы остались только выделенные. Плюс, из-за нормализации там надо подтягивать данные из других таблиц, а тут можно сразу денормализованный результат записать, что тоже ускорит выборку.

S>>Но, может еще есть какие-то варианты? Никак нельзя в пределах сервера реализовать функционал триггеров, но без навешивания самого триггера? Другие базы и пользовательские объекты создавать на сервере можно.

S>Можно попробовать состряпать indexed view на основе нужного запроса.

Честно говоря, ни разу делать не приходилось, попробую
Шурыгин Сергей

"Не следует преумножать сущности сверх необходимости" (с) Оккам
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.