|
Тема |
Re: Зор с Oracle9 и големи таблици [re: c1ick] |
|
Автор | AcidMemory (Нерегистриран) | |
Публикувано | 26.09.03 17:44 |
|
|
попрочети още малко, иначе си на прав път ...
RTFM му е майката
Значи в 9i е малко по-различно, тъй като са сменени начините и случаите, в които действат optimizer-ите (RBO - Rule Based Optimizer и CBO - Cost Based Optimizer). Това е така, поради факта, че с всяка версия Oracle ще налагат CBO, а с течение на времето RBO ще стане deprecated.
Много се набляга на факта всички приложения и бази да ползват CBO, а RBO се поддържа само за backward compatibility. Трябва да видиш как е настроена базата (специално optimizer променливите като OPTIMIZER_MODE). "Кофтито" на CBO е, че се нуждае от статистики за да може да действа (примерно ако нямаш статистики и OPTIMIZER_MODE ти е CHOOSE, тогава бачка RBO)
Както другите споменават отчасти, един прост начин да ползваш CBO, а оттам и hints, е collecting statistics. След това лесно можеш с един EXPLAIN PLAN да видиш как ще се промени плана на заявката, като добавиш
SELECT /*+NO_INDEX(<table> <index>)*/ <field>
FROM <table>
WHERE <field> <relation> ...
btw бъркаш в NO_INDEX синтаксиса, правилният е (няма field):
/*+ NO_INDEX ( table [index [index]...] ) */
аде дерзай ...
|
| |
|
|
|