Хранение "временных" данных

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
SerjP
Сообщения: 24
Зарегистрирован: 09 июл 2008, 15:01

Хранение "временных" данных

Сообщение SerjP » 07 дек 2009, 10:39

Всем добрый день.
Столкнулся со следующей проблемой -
Есть достаточно сложная расчетная задача. Порядка 30 стартовых параметров. В процессе расчета происходит вычисление еще порядка 70 параметров. Все они хранятся во "временной" таблице до окончания расчета(потом удаляются). сейчас расчет происходит за 7-14 сек(в зависимости от количества стартовых параметров). В общем меня это устраивало до момента, пока не появилась задача в проведение порядка 60 таких расчетов сразу(с изменением пары-тройки стартовых парметров) Время выполнения пропрорционально вырасло.... :(. Проведя анализ производительности выявил, что имеет место быть порядко 700тыс чтений из "временной" таблицы. Возник вопрос - если бы использовалась для хранения промежуточных данных не таблица а некая "таблице-подобная структура данных в памяти" изменилась ли производительность в лучшую сторону? Есть подозрения, что да...
Собственно вопрос - может что посоветуете по поводу "хранилища для промежуточных данных"....

Используется сервер FB 2.1.3

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Хранение "временных" данных

Сообщение Dimitry Sibiryakov » 07 дек 2009, 14:29

В первую очередь вместо "временных" таблиц надо попробовать по-настоящему временные.

Во вторую - попробовать пересмотреть логику, чтобы хватало локальных переменных.

SerjP
Сообщения: 24
Зарегистрирован: 09 июл 2008, 15:01

Re: Хранение "временных" данных

Сообщение SerjP » 07 дек 2009, 15:27

Dimitry Sibiryakov писал(а):В первую очередь вместо "временных" таблиц надо попробовать по-настоящему временные.

Во вторую - попробовать пересмотреть логику, чтобы хватало локальных переменных.
1) Это GLOBAL TEMPORARY TABLE ? Попробую...
2) Логику пересмотреть не получится - это расчет по динамическим формулам с условиями(некоторые ветки формулы могут не считаться в зависимости от значений параметров. Некоторые параметры расчитываются по другим формулам, некоторые по дереву коэфициентов, параметры могут быть числами, датами...

SerjP
Сообщения: 24
Зарегистрирован: 09 июл 2008, 15:01

Re: Хранение "временных" данных

Сообщение SerjP » 07 дек 2009, 16:02

1) Попробовал - особо разницы в скорости работы нет...

Ответить