Показать сообщение отдельно
Старый 20.06.2005, 14:03   #14  
Scorpie is offline
Scorpie
Участник
 
239 / 10 (1) +
Регистрация: 25.10.2004
Адрес: Moskow
Цитата:
Сообщение от Константин!
Все понятно занчит, что ускорить втсавку в стаблицы  надо Отключать определенные FlouFields и оптемизировать ключи (что и советовал Mazzy).
Объесните пожалуста суть всех дополнительных галочек в ключе т.к я это все понимаю очень поверхностно и могу чего нибуть испортить.

MaintainSQLIndex-?
MaintainSIFTIndex-?
SIFT Levels To Maintain-?
SIFT Levels to maintain - самый быстрый путь решения вопроса. Не обязательно панацея, но поможет сильно.
Рассмотрим 2 стандартных ключа для 17й таблицы:
1) G/L Account No.,Business Unit Code,Global Dimension 1 Code,Global Dimension 2 Code,Close Income Statement Dim. ID,Posting Date,Agreement No.
2)G/L Account No.,Business Unit Code,Global Dimension 1 Code,Global Dimension 2 Code,Posting Date,Agreement No.

Набор SIFT полей для данных ключей одинаковый :
Amount,Debit Amount,Credit Amount,Additional-Currency Amount,Add.-Currency Debit Amount,Add.-Currency Credit Amount

Итак. когда происходит запись в таблицу все 6 суммовых полей должны быть пересчитаны для всех уровней обоих ключей.
Несложно заметить что первые 4 уровня - "G/L Account No.,Business Unit Code,Global Dimension 1 Code,Global Dimension 2 Code" в обоих ключах одинаковы... соответственно идём в свойство 2го ключа и отключаем для этих 4х уровней галочку Maintain. Т.е. убираем элементарное дублирование...

Что произойдёт когда в коде будет явно использоваться 2й ключ и пойдёт расчёт CALCSUM(Amount) по полям "G/L Account No.,Business Unit Code,Global Dimension 1 Code" !? Движок определив что данный уровень для данного ключа отключён, возьмёт расчитанные суммы из первого ключа - ведь они там хранились бы одинаковые...

Вообщем это самый быстрой способ немного ускориться абсолютно никак не рискуя потерять в производительности...