Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Отключить кэширование  [new]
Alexander84
Member

Откуда:
Сообщений: 32
Привет!

Занимаюсь оптимизацией запросов. И вот вопрос - как отключить кэширование в Оракл 10.2.0.1.0, чтобы каждый раз запрос выполнялся как в первый раз?
15 фев 08, 18:29    [5297288]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
concepts
Member

Откуда: из засады
Сообщений: 279
Никак, да и не зачем это.
15 фев 08, 18:31    [5297300]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
RA\/EN
Member

Откуда:
Сообщений: 3658
Alexander84
Привет!

Занимаюсь оптимизацией запросов. И вот вопрос - как отключить кэширование в Оракл 10.2.0.1.0, чтобы каждый раз запрос выполнялся как в первый раз?

alter system flush buffer_cache
перед выполнением запроса.
Поищи по форуму - я уже писал, что этот способ может привести к неверному выбору решения, если отталкиваться от времени выполнения, т.к. в реальной ситуации закэширование есть.
15 фев 08, 18:32    [5297304]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Alexander84
Member

Откуда:
Сообщений: 32
Часто при оптимизации приходится делать незначительные изменения запроса. И вот есть подозрение, что при незначительном изменении запроса оракл как-то использует кэш. Так ли это?
15 фев 08, 18:33    [5297313]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
Alexander84
Часто при оптимизации приходится делать незначительные изменения запроса. И вот есть подозрение, что при незначительном изменении запроса оракл как-то использует кэш. Так ли это?


- Аки паки иже херувимы... (c)

Что этим хотели сказать ?
15 фев 08, 18:36    [5297325]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Alexander84
Member

Откуда:
Сообщений: 32
Дубовая голова
Alexander84
Часто при оптимизации приходится делать незначительные изменения запроса. И вот есть подозрение, что при незначительном изменении запроса оракл как-то использует кэш. Так ли это?


- Аки паки иже херувимы... (c)

Что этим хотели сказать ?



Ну пытаюсь убрать какое-нибудь условие из запроса, чтобы посмотреть сколько времени он будет выполняться - а он все сделает за полсекунды, тогда как на самом деле это не так.
15 фев 08, 18:38    [5297335]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
Alexander84
Ну пытаюсь убрать какое-нибудь условие из запроса, чтобы посмотреть сколько времени он будет выполняться - а он все сделает за полсекунды, тогда как на самом деле это не так.


Кхм... Попробую перевести с языка newbie на номальный.

Вы (в некоем GUI) меняете запрос, опосля запускаете его - а он, скаааатина,
снова выдаеи вам результаты очень быстро, чем вы и недовольны. А предполагается,
что он будет думать, думать и думать... Так ?
15 фев 08, 18:40    [5297351]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Alexander84
Member

Откуда:
Сообщений: 32
Да! Именно
15 фев 08, 18:50    [5297390]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Чапцов Илья
Member

Откуда:
Сообщений: 53
Как не использовать кеш?
15 фев 08, 18:58    [5297432]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
Alexander84
Да! Именно


Мне думается, что вы неправильно представляете, что происходит.

Один маленький пример. В таблице t - десять миллионов записей:

SQL> var rc refcursor
SQL> exec open :rc for select x from t;

PL/SQL procedure successfully completed.

SQL> var x number
SQL> exec fetch :rc into :x;

PL/SQL procedure successfully completed.

SQL> print x

         X
----------
         1

Вся операция заняла от силы доли секунды в сумме.
А основной запрос - выборка всех записей из t.

Это называется курсор и фетч.

Попробуйте поискать в GIU такую кнопочку "прокрутить курсор до конца".
Вас приятно удивят результаты.


P.S. Вообще-то надо бы при оптимизации смотреть прежде всего на планы
выполнения.
15 фев 08, 18:59    [5297435]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Alexander84
Member

Откуда:
Сообщений: 32
Понятно, но только вот plan cost'у я перестал верить, после того как обнаружил разницу в 20 секунд у запросов с одинаковой стоимостью. Запрос был типа:

select a.id, b.b
from a
join b ON b.id = a.b_id

выполнялся меньше секунды

а запрос

select a.id, b.b
from a
join b ON b.id = a.b_id and b.id2 = 'asdf'

выполнялся 30 секунд
plan cost был одинаковый - все было по индексам.

Вот я и думаю теперь, что является объективным критерием скорости выполнения запроса?
15 фев 08, 19:13    [5297484]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
Alexander84
Понятно, но только вот plan cost'у я перестал верить, после того как обнаружил разницу в 20 секунд у запросов с одинаковой стоимостью


Стоимостью надо пользоваться очень осторожно, хорошо понимая, что почем.
Боюсь, что вам рановато. :)

Alexander84

plan cost был одинаковый


Так plan или cost ? Это сугубо разные вещи.
15 фев 08, 19:22    [5297512]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Alexander84
Member

Откуда:
Сообщений: 32
Это был cost..

Ну а все же, что можно использовать в качестве объективного показателя, что запрос стал лучше?
15 фев 08, 19:42    [5297569]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Дубовая голова
Member [заблокирован]

Откуда: с цепи сорвался
Сообщений: 1821
Alexander84
Ну а все же, что можно использовать в качестве объективного показателя, что запрос стал лучше?


Объективный показатель - время выполнения.
Анализ - планы выполнения.
15 фев 08, 19:45    [5297577]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
RA\/EN
Member

Откуда:
Сообщений: 3658
Дубовая голова
Боюсь, что вам рановато. :)

+1.
Кайта, Concepts, Performance Tuning Guide. Читать. Понять. Потом запросы тюнить. Сейчас - рано.
15 фев 08, 21:09    [5297820]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Alexander84
Member

Откуда:
Сообщений: 32
RA\/EN
Дубовая голова
Боюсь, что вам рановато. :)

+1.
Кайта, Concepts, Performance Tuning Guide. Читать. Понять. Потом запросы тюнить. Сейчас - рано.



Спасибо большое! :) Уже наткнулся на полезную одну полезную статью Кайта - помогло, ускорилось. Прочитаю обязательно, спасибо.
15 фев 08, 21:13    [5297843]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18343
Дубовая голова
Alexander84
Ну а все же, что можно использовать в качестве объективного показателя, что запрос стал лучше?
Объективный показатель - время выполнения.

...на системе Заказчика под рабочей нагрузкой.
15 фев 08, 21:48    [5297956]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Madness
Member

Откуда: Москва
Сообщений: 648
RA\/EN
Дубовая голова
Боюсь, что вам рановато. :)

+1.
Кайта, Concepts, Performance Tuning Guide. Читать. Понять. Потом запросы тюнить. Сейчас - рано.

+1024, только этих двоих я бы поменял местами в списке :)
15 фев 08, 22:03    [5298007]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
Этанол Эталонович
Member

Откуда: Водкозажопск
Сообщений: 253
andrey_anonymous
Дубовая голова
Alexander84
Ну а все же, что можно использовать в качестве объективного показателя, что запрос стал лучше?
Объективный показатель - время выполнения.

...на системе Заказчика под рабочей нагрузкой.
...без хинтов :)
15 фев 08, 22:16    [5298047]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18343
Этанол Эталонович
andrey_anonymous
Дубовая голова
Alexander84
Ну а все же, что можно использовать в качестве объективного показателя, что запрос стал лучше?
Объективный показатель - время выполнения.

...на системе Заказчика под рабочей нагрузкой.
...без хинтов :)

Последнее к делу не относится.
С хинтами/без них - все равно, если запрос стал работать у Заказчика с заданной эффективностью и применение хинтов допускается ТРПО
15 фев 08, 22:57    [5298184]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
AG#
Member

Откуда: Российская Федерация
Сообщений: 2305
Этанол Эталонович
andrey_anonymous
Дубовая голова
Alexander84
Ну а все же, что можно использовать в качестве объективного показателя, что запрос стал лучше?
Объективный показатель - время выполнения.

...на системе Заказчика под рабочей нагрузкой.
...без хинтов :)


А что плохого в этом, если грамотно сделано ?
Собственно и хинт /*+ RULE */ тоже рулит, ЕСЛИ ГРАМОТНО СДЕЛАНО ;)
16 фев 08, 00:53    [5298636]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
AG#
Member

Откуда: Российская Федерация
Сообщений: 2305
Alexander84
...ли это?



Сделайте db_cache_size < 100 + grant/revoke/grant select on owner.table to owner.Проверте.Подозреваю что тут зарыто...
16 фев 08, 03:53    [5298758]     Ответить | Цитировать Сообщить модератору
 Re: Отключить кэширование  [new]
denix1
Member

Откуда: Киев
Сообщений: 4656
AG#
Alexander84
...ли это?



Сделайте db_cache_size < 100 + grant/revoke/grant select on owner.table to owner.Проверте.Подозреваю что тут зарыто...

и вот так на потенциально промышленной системе ?
какой-то кривой бубен используется для танцев....

если сильно хочется "подчистить" окружение, то
1. чистим буфферный кеш Оракла
2. чистим разделяемый пул
3. для порядка "чистим" кеш файловой системы,если не используется директио....

ПС.
с грантами и ревоками не совсем понятно что имелось в виду ?
инвалидейтнуть планы запросов ?
18 фев 08, 10:27    [5302201]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить