![]() |
|
Модераторы: Akella |
![]()
|
|
| dershokus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 7.8.2011 Репутация: нет Всего: 1 |
Здравствуйте. Я не очень знаю firebird, но подскажите:
11 миллионов записей в таблице (может быть больше) + запрос
выполняется 15 минут! Иногда вообще все записает :( Есть какие-нибудь методы ускорить это? P.S.: Возможно это связано как-то с мусором. Но как это удалять. %) Это сообщение отредактировал(а) dershokus - 6.12.2012, 18:29 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 3 Всего: 454 |
Мало данных...
Можно заменить апдейт на удаление и пересоздание поля с нулевым дефолтным значением. Можно (если есть) убить и после апдейта пересоздать индексы с этим полем. Можно... ну, в общем, мало данных. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Усилить железо. Испорльзовать FB x64. Установить FB, как суперклассик, или как классик, чтобы нормально работал с многоядерными процессорами. Я надеюсь, что проц-то хоть 2х ядерный? Посмотри на загрузку процессора и винчестера. Добавлено через 57 секунд Мало того. Ты транзакцию подтверждаешь после каждой записи или как? Добавлено через 3 минуты и 53 секунды Если это всё запускается на стороне клиентского приложения, то можно выделить отдельный поток и тогда приложение не будет виснуть. Добавлено через 5 минут и 55 секунд И ещё. Индекс есть по этому полю (bigint_column)? Отключай (деактивируй) перед обновлением, а потом активируй (пересоздавай). Убедись 100 раз, что при обновлении этого поля не выполняется ничего лишнейго. А то вдруг у тебя там триггер на обновление другой таблицы. В итоге обновляется реально в баще не 11 мульёнов, а 100500 мульёнов. |
|||
|
||||
| dershokus |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 7.8.2011 Репутация: нет Всего: 1 |
На железо не грешу. У меня i7 3.4GHz 16Gb ОЗУ. Нечему тормозить.
В этой таблице одно ключевое поле, индексов вообще нет. Когда произвожу вышеуказанный запрос - система толком не грузится... Хотя грузится толоько одно ядро в районе 30-70%
Всмысле? Я комичу после каждого запроса.
Это я конечно сделал. Это болше по програмной части, а не по базе.
Установлен суперсервер. |
||||||
|
|||||||
| tzirechnoy |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Можно попробовать включить write-back cache в системе и/или отключить fsync() в firebird. Это рискованно -- при отключении питания цэлостность данных становится заметно менее гарантированной. К тому жэ, я не знаю, как это делать в windows и firebird.
Ещё можно попробовать SELECT * ... перед этим запросом. Но вообще, 15 минут -- это примерно 10000 секунд. По 100 ms на запись -- не так чтобы совсем плохая скорость, особенно если в таблицэ не совсем маленькие поля и есть индэксы. Добавлено через 1 минуту и 17 секунд Да, 15 минут -- это, разумеетя, 1000 секунд. и 100 мкс на запись. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
tzirechnoy, подучи русский.
|
|||
|
||||
![]()
|
| Правила форума "Interbase" | |
|
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |