23.09.2011 13:27, Khorsun Vlad пишет:
"Андрей Кручинин" ...
Хотя, пока писал пришла бешеная мысль в голову :-) Сделать запрос
через ХП, в которой определять откуда забирать данные. А уж метку
откуда можно и в генераторе держать.
Можно и так. Или научить программу пользоваться актуальной таблицей.
Там много кого учить придется если таблицу менять - PHP скриптов
несколько в разных местах стоят, поэтому проще через ХП делать.
Чтобы не замучать сервер пересозданием таблиц, можно подумать над такой
схемой:
а) есть две таблицы с идентичной стр-рой, одна актуальна, вторая - нет
б) программа (или sp) работает только с актуальной таблицей
в) есть признак (имя) актуальной таблицы
г) заливка происходит в неактуальную таблицу, в которой отключаются
индексы и триггеры и делается сборка мусора
д) после заливки таблицы меняются ролями
Этот метод напрямую и напрашивается.
Или можно к данным добавить метку, инкрементируемую перед каждой
заливкой. Она же входит первым полем в каждый индекс и обязательно
участвует во всех пользовательских запросах. Есс-но, пользователь
всегда читает самые свежие данные. Удаление старых данных делать в
технологическом окне (ночью) с отключением индексов и т.п.
А этот надо мучать. Попробую. Уж что-что а данных у меня в настоящий
момент достаточно чтобы места на сервере не хватило :-)
--
Андрей Кручинин
www.med-zakaz.ru
Для особо извращенных - http://мед-заказ.рф :-)