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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранимые процедуры, Очень быстро утекает память 
:(
    Опции темы
Aazmandius
Дата 1.2.2007, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


O_o
*


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

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



Есть несколько хранимых процедур, которые перегоняют данные из группы таблиц в одну, выгребая только определенные поля (в общем выполняется построение куба данных по схеме звезда для OLAP). Но на где-то 66000 записей все это благополучно виснет - заканчивается вся память, даже в файле подкачки  smile Причем память расходуется собственно при выборке данных в курсор и последующей по нему итерации... Подскажите пожалуйста возможные варианты оптимизации smile 
PM WWW   Вверх
SergeBS
Дата 5.2.2007, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1111
Регистрация: 10.6.2005
Где: Владимир

Репутация: 2
Всего: 22



Ну так не тащи сразу все. Поштучно обрабатывай.
PM MAIL   Вверх
skyboy
Дата 5.2.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



Цитата(Aazmandius @  1.2.2007,  13:35 Найти цитируемый пост)
Подскажите пожалуйста возможные варианты оптимизации

возможные этапы:
- триггеры вместо ХП(если это возможно) - нагрузку не уменьшат, но растянут её по времени; если возможно, конечно, выбирать данные "из нескольких таблиц ы одну" сразу после вставки каждой записи(ну, статистики там нет или ещё чего агрегирующего)
- оптимизировать структуру БД(уменьшить таким образом количество полей, выбираемых в ХП)
- оптимизировать логику(как-то странно выглядит выбор такого количества записей "по запросу"; может, что-то лишнее делаем?)
- оптимизировать настройки СУБД(сам таким не занимался, однако, от настроек много чего зависит)
- подавить использование индексов(вдруг у тебя 80 - байтные индексы при количестве записей в несколько миллиардов? впрочем, я точно не уверен, что индексы целиком бросаются в память)
- перенести нагрузку на клиент(кто-то ведь информацию требует? или нет?)
Собственно, без конкретизации задачи(особо интересует - зачем такое количество записей выбирать по запросу и куда-то переносить?) это будет гадание на кофейной гуще. А гадалок - не так много...
PM MAIL   Вверх
Aazmandius
Дата 2.3.2007, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


O_o
*


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

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



SergeBS, skyboy, 
Спасибо, реально помогло smile А такое количество нужно было для переноса данных из БД фронт-офиса в ейную же подсистему анализа, там же представление данных другое для OLAP-сервера smile
 
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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