![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
s_a_s_h_a |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Здравствуйте. Может быть кто-нибудь мне подскажет, как сделать следующую вещь.
Мне надо проверять работу БД. Для этого мне надо знать сколько записей в одной из таблиц. Это легко. Но как быть, если сделав запрос "select count(*) from NAME_TABLE", жду долго и не получаю никакого ответа, хотя там всего тыщ 40 записей. Меня интересует как, я могу установить внутри скрипта тайм-аут для этого запроса, чтобы если время, отведенное для него [запроса], будет превышено, получить соответствующее сообщение? |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
по моему ни как!!!
И вообще это не красиво прекращать работу селекта или придумай что нибудь другое(на за раз 4Е4 записей тягать) Это сообщение отредактировал(а) chaos - 28.12.2004, 13:18 |
|||
|
||||
Secandr |
|
|||
![]() Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
А может БД другую взять?
|
|||
|
||||
chur |
|
|||
Unregistered |
Надо использовать eval - alarm конструкцию. Из Perl Documentation:
|
|||
|
||||
dimes |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
Немного не в тему но, если ты хочеш знать сколько ВСЕГО строк в базе то нужно делать так: http://dev.mysql.com/doc/mysql/ru/SHOW_TABLE_STATUS.html ( если у тебя не mySQL то почитай соответствующий мануал ) Это сообщение отредактировал(а) dimes - 30.12.2004, 11:34 |
|||
|
||||
s_a_s_h_a |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Спасибо за пример, только я его понять не могу.
![]() Меня, вообще, редко кто с первого раза понимает (знаю сам виноват), поэтому попытаюсь ещё раз объяснить ситуацию. У меня в одну из таблиц постоянно заносятся записи и мне надо каждые два часа проверять работоспособность БД, т.е. что в её таблицы нормально заносятся и беруться записи. Для этого я просто хочу узнавать количество записей, которые были вставлены в течение последних двух часов. Так вот, если одна из таблиц повредилась, то ведь запрос подвесит скрипт и мне надо это проследить и выйти по тайм-ауту, и выдать соответсвуещее сообщение. Мне понятно. ![]() |
|||
|
||||
dimes |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
SHOW TABLE STATUS [FROM db_name] [LIKE wild]
Команда SHOW TABLE STATUS (новшество версии 3.23) работает как SHOW STATUS, но предоставляет большое количество информации по каждой таблице. Выводятся следующие столбцы(избранное): ........ Rows: Количество строк. Update_time: Время последнего обновления файла данных. Check_time: Время последней проверки таблицы. /* А теперь особое внимание на это */ Comment Примечания, внесенные при создании таблицы (или информация о причинах, почему MySQL не может получить доступ к данным в таблицах). Ссылку на документацию я уже запостил, смотри выше |
|||
|
||||
chur |
|
|||
Unregistered |
|
|||
|
||||
dimes |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
Опа, видать СУБД не mySQL... для начала скажи какая у тебя СУБД так проще будет помочь. |
|||
|
||||
s_a_s_h_a |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 20.7.2004 Где: Петрозаводск Репутация: нет Всего: 1 |
Не, mySQL. Просто я в СУБД совсем никак. Может быть таблица и не повредилась, а слишком большой индексный файл и сама она большая и поэтому даже запрос select count(*) from TABLE подвешивает скрипт на несколько часов.
|
|||
|
||||
dimes |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 20.7.2004 Где: то около СПБ Репутация: нет Всего: 14 |
"SELECT COUNT(*) FROM tbl_name" Является одним из самых быстрых запросов
Другими словами размер таблици не имеет значение, если удалось повалить сервер таким запросом значит что то не понятное с сервером... или что то с твоим скриптом... Это сообщение отредактировал(а) dimes - 30.12.2004, 13:12 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |