Базы данных Oracle - статьи

         

Тестирование параметра cursor_sharing и операторов с надежными литералами


В тестовой программе поиск по простому индексу первичного ключа выполняется так же эффективно, как и в первом тесте, но вместо переменных связывания используются литералы. Во всех тестах открытие и закрытие курсоров выполняется за пределами циклов.

 

1

3

6

12

24

В тесте используются надежные литералы, установка параметра cursor_sharing=exact (то есть разделение курсоров не используется).



349

407

499

995

2135

В тесте используются надежные литералы, установка параметра cursor_sharing=force.

85

95

97

102

164


В тестовой программе выполняется запрос индексированного столбца таблицы с несимметричным распределением данных. Статистики столбца собраны вместе, поэтому в некоторых запросах будет использоваться полный просмотр таблицы, а в некоторых - поиск по индексу. Тесты демонстрируют эффективность использования ненадежных литералов, которые более или менее часто изменяются между вызовами, а также эффективность установки параметра cursor_sharing=similar. Во всех тестах открытие и закрытие курсоров выполняется за пределами циклов, в цикле повторяются разбор и выполнение операторов SQL. Кроме того, во всех тестах фактически используется корректный план выполнения (полный просмотр таблицы или поиск по индексу), поэтому различия в результатах не связаны с некорректным планом выполнения.

Заметим: результаты тестирования можно сравнивать только в пределах каждой подгруппы тестов (подгруппы разделены пустой строкой), так как выполняемые в разных подгруппах тесты отличаются друг от друга и имеют разную частоту изменения ненадежных литералов. Результаты нельзя также сравнивать с результатами первых двух тестов.

1

3

6

12

24

В тесте используются ненадежные литералы, которые редко изменяются, параметр cursor_sharing не используется.

557

607

670

1058

2355

В тесте используются ненадежные литералы, которые редко изменяются, установка параметра cursor_sharing=similar.

318

350

352

396

554

           

В тесте используются ненадежные литералы, которые изменяются через каждые 10 вызовов, параметр cursor_sharing не используется.

321

389

489

938

1993

В тесте используются ненадежные литералы, которые изменяются через каждые 10 вызовов, установка параметра cursor_sharing=similar.

120

139

133

158

222

           

В тесте используются ненадежные литералы, которые изменяются через каждые 3 вызова, параметр cursor_sharing не используется.

330

365

485

900

1949

В тесте используются ненадежные литералы, которые изменяются через каждые 3 вызова, установка параметра cursor_sharing=similar.

172

194

210

264

524

           

В тесте используются ненадежные литералы, которые непрерывно изменяются, параметр cursor_sharing не используется.

316

358

468

846

1838

В тесте используются ненадежные литералы, которые непрерывно изменяются, установка параметра cursor_sharing=similar.

369

417

505

824

1724



Содержание раздела