Форум: "Прочее";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
ВнизOracle. Найти похожие ветки
← →
AntiUser (2008-01-14 13:16) [0]Здравствуйте.
У меня вопрос к знатокам Oracle.
Существует некая таблица в ней примерно 1500000 записей, есть поле содержащие некое описание. Описание может быть размером от 15 до 4000 символов, в общем в среднем, порядка 300-500 символов на каждую запись. Так вот, база и эта таблица в частности существует в виде текстовых файлов,. Это старая версия еще с 80-90 годов, но практика их использования (текстовиков) еще осталась, в силу ряда причин. Значит далее. Если используя sqlloader загнать всю базу из текстовиков в СУБД, то до первой перезагрузки сервера запрос вида like "%бла-бла%" (по выше описанному полю) выполняется за 4 сек., а после перезагрузки уже 20 и более.
Отсюда вопрос. Что происходит во время работы sqlldr, что позволяет так быстро обрабатывать запросы (индексация, кеширование или еще что), чего не происходит во время загрузки СУБД после перезагрузки. Может стОит выполнить какое-то действие, которое выполняет sqlldr, на тригере инициализации СУБД? Каким-то образом загнать всю таблицу в память и запретить ее выгружать, как-то проиндексировать или еще чего?
Поделитесь соображениями. Заранее благодарен за ответы.
← →
Petr V. Abramov © (2008-01-14 13:22) [1]вся таблица в кеше сидела.
ничего делать не надо, через какое-то врямя она опять там будет, если запросы часто выполняются.
← →
Правильный_Вася (2008-01-14 13:27) [2]у таблицы можно поиграть с STORAGE ( BUFFER_POOL KEEP )
← →
Игорь Шевченко © (2008-01-14 13:29) [3]Intermedia не проще использовать вместо like "blah-blah" ?
← →
Petr V. Abramov © (2008-01-14 13:31) [4]
> Правильный_Вася (14.01.08 13:27) [2]
можно но не нужно, на такие таблицы буферов не напасешься
← →
Правильный_Вася (2008-01-14 13:40) [5]
> можно но не нужно
это зависит от задачи
может, она одна такая у автора и постоянно юзается
← →
Petr V. Abramov © (2008-01-14 13:42) [6]
> Правильный_Вася
тогда она естественным образом в кеше останется
← →
Игорь Шевченко © (2008-01-14 13:43) [7]Всего-то 750 метров потребуется, чтобы всю таблицу загнать в память - тоже мне, затраты.
Правда все равно, запросы на like по такому полю - это сильно.
← →
Petr V. Abramov © (2008-01-14 13:49) [8]
> Игорь Шевченко © (14.01.08 13:43) [7]
> Всего-то 750 метров потребуется, чтобы всю таблицу загнать
> в память - тоже мне, затраты.
растрата семенного фонда.
> Правда все равно, запросы на like по такому полю - это сильно.
если раз в год - то нормально
← →
Правильный_Вася (2008-01-14 13:49) [9]
> тогда она естественным образом в кеше останется
если остальные (не очень крупные, но много) не вышибут ее части или по частям
← →
Petr V. Abramov © (2008-01-14 13:50) [10]
> Правильный_Вася (14.01.08 13:49) [9]
если вышибут - значит, они нужнее
← →
Правильный_Вася (2008-01-14 13:52) [11]
> если вышибут - значит, они нужнее
нет, значит, они позже использовались, а кэш уже занят
← →
Petr V. Abramov © (2008-01-14 13:57) [12]
> Правильный_Вася (14.01.08 13:52) [11]
это и есть "нужнее"
← →
AntiUser (2008-01-14 14:03) [13]Таблица, конечно, не одна, но надо чтобы именно она сидела в кеше постоянно, ибо остальные менее значимы.
Игорь, а можно поподробнее на счет Intermedia?
← →
Petr V. Abramov © (2008-01-14 14:10) [14]скорее не Intermedia, а Oracle Text
http://download.oracle.com/docs/cd/B19306_01/text.102/b14217/overview.htm#sthref29
> Таблица, конечно, не одна, но надо чтобы именно она сидела
> в кеше постоянно
ну если прям так надо, см [2]
только не дело это. хотя я задачу не знаю
← →
Petr V. Abramov © (2008-01-14 14:22) [15]еще как вариант - описание вынести в отдельную таблицу, на отдельный диск в непрерывный сегмент в tablespace с большим блоком.
← →
AntiUser (2008-01-14 16:04) [16]Спасибо.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.02.17;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.038 c