2013-10-07 5 views

ответ

1

От here: -

Самый полный инструмент, который Informix предусматривает сбор подробных планов запросов SQL и статистику выполнения является SET EXPLAIN утилиты. Эта утилита будет генерировать файл sqexplain.out и подробно описывает каждый шаг выполнения запроса. Кроме того, он предоставляет сметные расходы на запрос и оценивает результаты запроса . Изучив выходной файл SET EXPLAIN, вы можете определить , если можно предпринять шаги для повышения производительности запроса. Следующий пример показывает набор объяснить выход для довольно сложного запроса:

SELECT --+AVOID_FULL(omchn)+AVOID_FULL(daphn) 
       omchn.omc_hn_uanc, 
       nvl(daphn.gtt_version,"0000000000000000000"), 
       nvl(idachn.egt4_version,"0000000000000000000"), 
       nvl(ihlrhn.hlr_timestamp,"00000000000000"), 
       vsgw_hn.hn_igw_uanc, 
       nvl(vsgw_hn.hn_igw_version, "00000000000000") 
      FROM omchn, daphn, idachn, ihlrhn, vsgw_hn 
      WHERE daphn.dap_hn_inst = omchn.omc_hn_inst 
      AND idachn.idac_hn_inst = omchn.omc_hn_inst 
      AND ihlrhn.hlr_hn_inst = omchn.omc_hn_inst 
      AND vsgw_hn.vsgw_hn_inst = omchn.omc_hn_inst 

DIRECTIVES FOLLOWED: 
AVOID_FULL (omchn) 
AVOID_FULL (daphn) 
DIRECTIVES NOT FOLLOWED: 

Estimated Cost: 8 
Estimated # of Rows Returned: 1 

    1) root.idachn: SEQUENTIAL SCAN 

    2) root.daphn: INDEX PATH 

    (1) Index Keys: dap_hn_inst (Serial, fragments: ALL) 
     Lower Index Filter: root.daphn.dap_hn_inst = root.idachn.idac_hn_inst 
NESTED LOOP JOIN 

    3) root.vsgw_hn: SEQUENTIAL SCAN 
NESTED LOOP JOIN 

    4) root.omchn: INDEX PATH 

       Filters: root.vsgw_hn.vsgw_hn_inst = root.omchn.omc_hn_inst 
      (1) Index Keys: omc_hn_inst (Serial, fragments: ALL) 
     Lower Index Filter: root.idachn.idac_hn_inst = oot.omchn.omc_hn_inst 
NESTED LOOP JOIN 

    5) root.ihlrhn: INDEX PATH 

      (1) Index Keys: hlr_hn_inst (Serial, fragments: ALL) 
     Lower Index Filter: root.ihlrhn.hlr_hn_inst = root.omchn.omc_hn_inst 
NESTED LOOP JOIN 
2
select der.session_id, 
der.blocking_session_id, 
der.wait_type, 
der.wait_time, 
der.start_time, 
DATEDIFF(second,der.start_time,GETDATE())/60.0 AS executeTime_Minutes, 
percent_complete, 
der.status as requestStatus, 
des.login_name, 
cast(db_name(der.database_id) as varchar(30)) as databaseName, 
des.program_name, 
der.command as commandType, 
der.percent_complete, 
case des.transaction_isolation_level 
when 0 then 'Unspecified' when 1 then 'ReadUncomitted' 
when 2 then 'ReadCommitted' when 3 then 'Repeatable' 
when 4 then 'Serializable' when 5 then 'Snapshot' 
end as transaction_isolation_level, 
char(13) + char(10) + Current Command + char(13) + char(10) + 
case when der.statement_end_offset = -1 then 

--see objectText-- остальное SUBSTRING (execText.textder.statement_start_offset/2, (der.statement_end_offset - der.statement_start_offset)/2) конец + символ (13) + char (10) + '------ Полный объект ------------' AS currentExecutingCommand, execText.text как objectText от sys.dm_exec_sessions des - возвращает информацию о каждом пользовательский и внутренний системный сеанс на экземпляре SQL Server, включая настройки сеанса, безопасность и совокупный CP U, памяти и ввода/вывода использование присоединиться sys.dm_exec_requests как дер --The sys.dm_exec_requests DMV показывает нам, что в настоящее время работает на der.session_id = des.session_id
--on экземпляра SQL Server, его влияние на память, процессор, диск и кеш. внешнее применение sys.dm_exec_sql_text (der.sql_handle) как execText где --des.session_id <> @@ spid и des.session_id> 40;

+1

Извините, не уточнить, но это будут активные запросы и процессы. Я предположил, что один инструмент будет статистическим результатом для сравнения разных версий. – Tony233933

Смежные вопросы