@alexandergor

Как ускорить запросы Information schema на Oracle?

Запрос Information schema или просто запрос на АLL_COLUMNS, ALL_CONSTRAINTS итд. длится 6-7 секунд.
Помогло только поставить /*+RULE*/ в запрос, тогда возвращается за 0.5-0.8сек. Провайдер - OraOLEDB, база - 12g, сам сервер - не продакшн, а для разработки т.е. в нём каждый день сотни баз создаются/грохаются, данных мало.

Пробовал обновлять статистику, улучшилось до 5.2сек с 6.7сек.

Буду рад любому совету
  • Вопрос задан
  • 119 просмотров
Пригласить эксперта
Ответы на вопрос 2
Lorien_Elf
@Lorien_Elf
Keep calm and drop database
Статистику как собирали? В идеале после каждого "создания базы" собирать по всей базе делать
exec DBMS_STATS.GATHER_DATABASE_STATS;
ну или хотя бы для вашей проблемы
exec DBMS_STATS.GATHER_DICTIONARY_STATS;

Какие-то специфические init-параметры установлены на базе?
Ответ написан
@alexandergor Автор вопроса
Да, делал так же. Результатом стало улучшение на 1сек.

Базы это по факту теблспейсы под юзера, вот так создаю:

CREATE TABLESPACE %DBName% DATAFILE %PathDBName% SIZE 8M AUTOEXTEND ON NEXT 4M MAXSIZE UNLIMITED;

CREATE USER %DBName% IDENTIFIED BY %Pass% DEFAULT TABLESPACE %DBName%
TEMPORARY TABLESPACE "TEMP"';

GRANT "CONNECT" TO %DBName%;
GRANT CREATE TRIGGER TO %DBName%;
GRANT CREATE TABLE TO %DBName%;
GRANT CREATE PROCEDURE TO %DBName%;
GRANT CREATE VIEW TO %DBName%;
GRANT UNLIMITED TABLESPACE TO %DBName%;
GRANT CREATE INDEXTYPE TO %DBName%;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы