проверка коннекта к таблицам

mr_virtus
Дата: 08.10.2015 11:57:13
Как можно проверить коннект к таблицам?


Есть мысль написать селект ко всем таблицам через цикл и если этот селект выполнится, значит все впорядке. А если нет - значит что-то сломалось.

То есть может прав не хватает, с синомим проблема или таблица залочена.

Как это лучше реализовать? Или может есть образец скрипта?
JDS
Дата: 08.10.2015 12:06:25
mr_virtus
Есть мысль написать селект ко всем таблицам через цикл

Хорошая мысль ))
А как таблица может быть залочена на селект? (не ну можно извратиться наверно, на каком-нибудь триггере инстедоф, а так в обычном режиме?)

Вопрос нафига это надо?
Обычно вполне хватает обработчиков, которые пишешь в процедурах или, в которые оборачиваешь селект )
Зачем проверять ВСЕ таблицы, если в базе их например тысячи )
Да и вообще зачем проверять? Сразу делаешь дмл и обрабатываешь эксепшны )
mr_virtus
Дата: 08.10.2015 12:13:13
JDS,

я согласен со многим что вы пишите. но мне вот поставили задачу, что я именно через луп написал эти селекты, чтоб проверить что якобы таким образом работают селекты ко всем таблицам.
mr_virtus
Дата: 08.10.2015 12:15:25
как я понимаю, есть сервисы которые делают к селекты к таблицам и нужно проверить что все селекты работают после манипуляций с базой.
JDS
Дата: 08.10.2015 12:28:24
mr_virtus
как я понимаю, есть сервисы которые делают к селекты к таблицам и нужно проверить что все селекты работают после манипуляций с базой.

Ну тогда кроме таблиц желательно наверно проверить на валидность и вьюшки и пакеты и процедуры, триггеры.
Потом, если идет обращение к синонимам, то и наличие синонимов ) (при этом выходит надо хранить где-то какие были синонимы, таблицы и т.д. или пытаться делать ретрозапросы к словарю ))
В общем имхо задача какая-то странная - ну сломается сервис, т.к. кто-то дропнул таблицу или добавил/удалил поля и т.д.
и что? По-моему это ненормально само по себе, когда может быть так что напрополую дропают и меняют объекты на рабочей базе и типа давайте мониторить, все ли у нас на месте вместо того, чтобы пресечь сам источник )
Q.Tarantino
Дата: 08.10.2015 12:30:47
FACEPALM
JDS
Дата: 08.10.2015 12:34:08
И потом, где гарантия, что твои селекты не будут ломаться, а при этом запросы сервиса все равно будут сыпаться? )
Т.е. запросы имхо надо делать в точности такими, какие их делает сервис, а коли так, то опять приходим к тому, что пусть сервис их и делает, ну а если ломается - разбираемся по ситуации. Не углубляйтесь в создание идеального приложения - должна быть разумная грань )
mr_virtus
Дата: 08.10.2015 15:06:59
JDS,

да все верно. сам страдаю от такой постановки задачи но не все зависит от меня)
tru55
Дата: 08.10.2015 15:19:06
А что, предположительно, может сломаться в таблице? Если конечно к ней не имеют доступа диверсанты.
JDS
Дата: 08.10.2015 15:21:34
mr_virtus, а как в точности звучит задача? Просто проверить работают ли селекты ко всем таблицам? ) Так в чем проблема? )