Как я могу получить план выполнения запроса в Informix?
Мне нужно что-то похожее на то, что я получаю в Oracle с explain plan
или в SQL Server с set showplan_all on
.
Я подключаюсь из приложения .NET (используя IBM.Data.Informix), если это важно.
Благодарность!
5
Diego Mijelshon
21 Июл 2009 в 04:27
2 ответа
Лучший ответ
В вашем SQL вы можете:
- execute
SET EXPLAIN ON;
Это будет действовать до тех пор, пока вы не отключите или не выполните эквивалентную инструкциюOFF
. Работает, по крайней мере, до версии 7, может даже работать в версии 5. - добавьте директиву оптимизатора (начиная с версии 9), например
SELECT {+EXPLAIN} foo, bar FROM ...
. Вы также можете использоватьSELECT --+EXPLAIN \n foo bar ...
в зависимости от точного синтаксиса вашего SQL (вы не можете закрыть - комментарий, он длится до конца строки). Этот вариант действует только для этого оператораSELECT
.
Место написания файла объяснения во многом зависит от ОС сервера базы данных. Это может быть домашний каталог вашего пользователя или каталог в $INFORMIXDIR
.
4
RET
21 Июл 2009 в 08:20
Какая версия Informix?
Есть некоторая информация, относящаяся к v10, для [SET EXPLAIN
].
0
lavinio
21 Июл 2009 в 06:56
Похожие вопросы
Новые вопросы
informix
Informix - это объектно-реляционная СУБД на основе SQL, OLTP / OLAP, NoSQL, разработанная IBM. Этот тег подходит для вопросов о любом из продуктов с Informix в названии продукта.
SET EXPLAIN FILE TO 'filename' [WITH APPEND]
; вы можете указать, где (на сервере) создается файл. Тем не менее, выходные данные по-прежнему поступают в файл, поэтому вам потребуется доступ к файлу на сервере. Если вы можете его запутать, функцию FILETOCLOB можно использовать для извлечения файла на стороне сервера в значение CLOB:INSERT INTO SomeTable VALUES(FILETOCLOB('/file/name','server'))
, а затем вы можете передать CLOB клиенту с помощью обычного SELECT (и проанализировать текст файл - получайте удовольствие!). Я не сказал просто!