Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> База лечится запросами! 
V
    Опции темы
Antony41
Дата 26.10.2013, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



есть программа сервер, есть БД, так вот выяснилось что сервер не может запуститься потому что не может прочитать таблицу LAST_POINTS, сначала делали бэкап, но вскоре выяснилось, что лечится так.

Открываю IBExpert, делаю запросы
select * from last_points rows 1 to 5
select * from last_points rows 1 to 10
select * from last_points rows 1 to 15
select * from last_points rows 1 to 20
...
select * from last_points rows 1 to 465 (это последний)
при чем каждый запрос обрабатывается от 5-30 секунд, но затем если его повторить выдает в долю секунды. т.е
выполняю например select * from last_points rows 1 to 5 (ждет 5-30-60 сек. и выдает результат)
затем снова выполняю его же select * from last_points rows 1 to 5 и выдается ответ в долю секунды, при чем  я могу закрыть IBExpert перезагрузить комп, это ни как не влияет, если я первый раз сделал select этих записей, то потом он будет выдавать их за долю секунды.

После этих всех запросов открываю программу СЕРВЕР, и она запускается, потому что смогла прочитать записи с таблице LAST_POINTS. Кто ни будь подскажите с чем это связано.
PM MAIL   Вверх
Akella
Дата 26.10.2013, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Цитата(Antony41 @  26.10.2013,  12:42 Найти цитируемый пост)
не может прочитать таблицу LAST_POINTS

Firebird именно так и отвечает программе: Не могу прочитать таблицу LAST_POINTS?
PM MAIL   Вверх
Antony41
Дата 26.10.2013, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



нет это было замечено, при бэкапе только этой таблицы, сервер запускался
PM MAIL   Вверх
Akella
Дата 26.10.2013, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Можно ещё раз и по-русски?
PM MAIL   Вверх
Antony41
Дата 26.10.2013, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



программа скаут-сервер не запускается, висит на логотипе.
всё это из за того что она не может прочитать таблицу в БД под названием Last_Points
можно сделать ремонт бызы средствами FireBird (gbak), но можно так

Открываю IBExpert открываю поврежденную базу, и начинаю выполнять поочереди запросы
select * from last_points rows 1 to 5
select * from last_points rows 1 to 10
select * from last_points rows 1 to 15
select * from last_points rows 1 to 20
...
select * from last_points rows 1 to 465 (это последний) в этой таблице 465 записей,
при каждом выполнении select'a проходит от 5 секунд до n минут (1,2 минуты), после чего IB мне показывает результат, но если повторить запрос он покажет результат тот же самый за долю секунды

делаю
1) select * from last_points rows 1 to 5 (ждет n минут, а затем результат)
2) select * from last_points rows 1 to 5 (мгновенно выводит результат)
3) select * from last_points rows 1 to 10 (ждет n минут, а затем результат)
4) select * from last_points rows 1 to 15 (ждет n минут, а затем результат)
5) select * from last_points rows 1 to 20 (ждет n минут, а затем результат)
6) select * from last_points rows 1 to 20 (мгновенно выводит результат)
и тд...
после этих действий можно выполнить запрос
select * from last_points rows 1 to 465 и он выполнится моментально толко после вышеописаных действий. 
даже если я потом перезагружу компьютер, он будет в дальнейшем выполняться мгновенно, в чем прикол?
другими словами вот пример процедуры, которая восстанавливает базу
Код

create procedure RECOVERY_LAST_POINTS (
    REC_COUNT integer)
returns (
    RSLT integer)
as
declare variable I integer = 1;
begin
  while (i <= :rec_count) do
  begin
    select Last_points.terminal_id from Last_points rows :i to :i into :rslt;
    suspend;
    i = i+1;
  end
end


Это сообщение отредактировал(а) Antony41 - 26.10.2013, 17:25
PM MAIL   Вверх
Akella
Дата 27.10.2013, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Пока ты не научишься правильно задавать вопросы на форумах, никто тебе не сможет помочь, даже если захочет :(

Добавлено через 1 минуту и 21 секунду
Цитата(Akella @  26.10.2013,  15:03 Найти цитируемый пост)
Firebird именно так и отвечает программе: Не могу прочитать таблицу LAST_POINTS? 


Цитата(Antony41 @  26.10.2013,  15:50 Найти цитируемый пост)
нет



Само собой, что сервер так не отвечает. Я думал, что ты поймёшь намёк и предоставишь полный и правильный текст ошибки.

Добавлено через 4 минуты и 59 секунд
Обязательно к прочтению и пониманию:
http://forum.vingrad.ru/forum/topic-353769.html
http://forum.vingrad.ru/topic-48020/125.html
http://www.gunsmoker.ru/2008/10/x-y-z.html
http://citforum.ru/howto/smart-questions-ru.shtml#intro
PM MAIL   Вверх
Antony41
Дата 29.10.2013, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



Блин да как еще объяснить то...
когда я делаю запрос например 
select * from last_points rows 1 to 20
проходит несколько минут и только потом выдается результат!
В данной таблице всего около 450 записей! что не понятного то?
Ни каких ошибок при этом не происходит!

Добавлено через 2 минуты и 34 секунды
под 'сервером' понимается не FireBird Server.
PM MAIL   Вверх
Akina
Дата 29.10.2013, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Слушай, это уже и так понятно. А вот ТОЧНЫЙ текст сообщения об ошибке мы увидим? с точностью до количества пробелов между словами и переносов строк...

Или ты так и будешь строить из себя идиота?

Если даже не выводится сообщений об ошибках на экран в виде всплывающего окна - что пишется в журналах? в логах IBExpert? Чем в это время занято приложение по мнению ProcessExplorer?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Akella
Дата 30.10.2013, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 20
Всего: 329



Akina, не мучай его расспросами. Не хочет он, чтобы ему помогли.


Antony41, и ещё один совет на всякий случай. Ты так, как здесь, не описывай вопросы и проблемы на sql.ru, там злые дядки и могут бить ногами в живот. (образно)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Interbase"
Alex

Обязательно указание:

1. Версию InterBase (Firebird, Yaffil)

2. Способа доступа (ADO, BDE, IBX и т.д.)

  • КАК ПРАВИЛЬНО ОФОРМИТЬ КОД - ЗДЕСЬ
  • КАК ПРАВИЛЬНО УКАЗАТЬ ТЕКСТ ОШИБКИ - ЗДЕСЬ
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • FAQ раздела лежит здесь!

Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Firebird, Interbase | Следующая тема »


 




[ Время генерации скрипта: 0.1287 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.