Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вышла новая версия IDS 10.00.xC6
|
|||
|---|---|---|---|
|
#18+
В Informix 10.00.xC6 добавлен новый способ работы оптимизатора с индексами - Index self-join path , который выглядит как объединение большого кол-ва маленьких сканов индекса: The query optimizer now supports a new type of index scan, called an index self-join path, that uses only subsets of the full range of a composite index. An index self-join is a type of index scan that you can think of as a union of many small index scans, each one with a single unique combination of lead-key columns and filters on non-lead-key columns. The union of small index scans results in an access path that uses only subsets of the full range of a composite index. The table is logically joined to itself, and the more selective non-leading index keys are applied as index-bound filters to each unique combination of the leading key values. Для его использования по умолчанию (если оптимизатор сочтет нужным конечно) надо включить соотв. параметр в onconfig. Для оптимизатора определены также соотв. директивы. Также для использования этого типа скана требуется чтобы данные соотв. ряду условий: * The index does not have functional keys, user-defined types, built-in opaque types, or non-B-tree indexes * Data distribution statistics are available for the index key column under consideration * The number of rows in the table is at least ten times the number of unique combinations of all possible lead-key column values * The INDEX_SELFJOIN ONCONFIG parameter has been set to 1 Я провел небольшой синтетический тест, у меня запрос выполняется быстро, и все страницы помещаются в буферах, поэтому померял buffreads для сессии в каждом варианте (измерение времени выполнения запроса было бы достаточно субъективно, поскольку может быть много внешних факторов, например другие приложения на сервере), - в случае использования нового типа скана кол-во чтений буферов меньше на моем запросе в 7 раз (левых сессий на информиксе для чистоты эксперимента не было). Стоимость запроса для Index self-join path также оказалась ниже в 4 раза: QUERY: ------ SELECT {+AVOID_INDEX_SJ(ttiitm001001 tiitm0010016abaan)} a.t_llcd,a.t_ncst,a.t_mrpi FROM ttiitm001001 a WHERE (a.t_mrpi >= 129) AND (a.t_mrpi <= 237) AND (a.t_llcd >= 1) AND (a.t_llcd <= 8) AND (a.t_ncst >= 1) AND (a.t_ncst <= 3) ORDER BY 1, 2, 3 DIRECTIVES FOLLOWED: AVOID_INDEX_SJ ( ttiitm001001 tiitm0010016abaan ) DIRECTIVES NOT FOLLOWED: Estimated Cost: 292 Estimated # of Rows Returned: 1037 1) informix.a: INDEX PATH (1) Index Keys: t_llcd t_ncst t_mrpi t_item (Key-Only) (Serial, fragments: ALL) Lower Index Filter: informix.a.t_llcd >= 1 AND (informix.a.t_mrpi >= 129 ) AND (informix.a.t_ncst >= 1 ) Upper Index Filter: informix.a.t_llcd <= 8 AND (informix.a.t_mrpi <= 237 ) AND (informix.a.t_ncst <= 3 ) Index Key Filters: (informix.a.t_mrpi >= 129 ) AND (informix.a.t_mrpi <= 237 ) AND (informix.a.t_ncst <= 3 ) AND (informix.a.t_ncst >= 1 ) QUERY: ------ SELECT a.t_llcd,a.t_ncst,a.t_mrpi FROM ttiitm001001 a WHERE (a.t_mrpi >= 129) AND (a.t_mrpi <= 237) AND (a.t_llcd >= 1) AND (a.t_llcd <= 8) AND (a.t_ncst >= 1) AND (a.t_ncst <= 3) ORDER BY 1, 2, 3 Estimated Cost: 77 Estimated # of Rows Returned: 1037 1) informix.a: INDEX PATH (1) Index Keys: t_llcd t_ncst t_mrpi t_item (Key-Only) (Serial, fragments: ALL) Index Self Join Keys (t_llcd t_ncst ) Lower bound: informix.a.t_llcd >= 1 AND (informix.a.t_ncst >= 1 ) Upper bound: informix.a.t_llcd <= 8 AND (informix.a.t_ncst <= 3 ) Lower Index Filter: (informix.a.t_llcd = informix.a.t_llcd AND informix.a.t_ncst = informix.a.t_ncst ) AND informix.a.t_mrpi >= 129 Upper Index Filter: informix.a.t_mrpi <= 237 Index Key Filters: (informix.a.t_ncst <= 3 ) AND (informix.a.t_ncst >= 1 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2007, 14:38 |
|
||
|
|

start [/forum/topic.php?fid=44&fpage=45&tid=1608470]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 314ms |

| 0 / 0 |
