syssqltrace_iter
syssqltrace_hvar
打开SQLTRACE跟踪SQL,
echo 'execute function task ("set sql tracing on",100000, "1k", "low","demodb");' | dbaccess sysadmin
说明:
demodb为跟踪的数据库名
100000为最多跟踪的SQL语句个数,超过这个数字时,将最早跟踪的SQL删除
1k为每个SQL占用的内存,对于有特别大的SQL语句,需要设置更大的值,如2k,4k
关闭SQLTRACE功能
echo ' execute function sysadmin:task("SET SQL TRACING OFF"); ' | dbaccess sysadmin
--Sequence Scan SQL
select distinct sql_statement
from sysmaster:Syssqltrace t
inner join sysmaster:syssqltrace_iter i
on t.sql_id = i.sql_id
where i.sql_itr_info='Seq Scan'
查询速度慢SQL
可以通过不同的指标进行排名
echo "select first 20 * from sysmaster:syssqltrace order by sql_totaltime"| dbaccess demodb
sql_id 3
sql_address 2103269416
sql_sid 147
sql_uid 502
sql_stmttype 2
sql_stmtname SELECT
sql_finishtime 1262581727
sql_begintxtime 306465594
sql_runtime 9.335050063883
sql_pgreads 0
sql_bfreads 1166108
sql_rdcache 100.0000000000
sql_bfidxreads 0
sql_pgwrites 0
sql_bfwrites 0
sql_wrcache 0.00
sql_lockreq 1000000
sql_lockwaits 0
sql_lockwttime 0.00
sql_logspace 0
sql_sorttotal 0
sql_sortdisk 0
sql_sortmem 0
sql_executions 1
sql_totaltime 28.00198770185
sql_avgtime 28.00198770185
sql_maxtime 9.335050063883
sql_numiowaits 0
sql_avgiowaits 0.00
sql_totaliowaits 0.00
sql_rowspersec 0.107123153401
sql_estcost 53816
sql_estrows 1
sql_actualrows 1
sql_sqlerror 0
sql_isamerror 0
sql_isollevel 2
sql_sqlmemory 16128
sql_numiterators 2
sql_database <None>
sql_numtables 0
sql_tablelist None
sql_statement select count(city) from customer_t where city matches 'citya* '
sql_stmtlen 63
sql_stmthash 2789718969
sql_pdq 0
sql_num_hvars 0
sql_dbspartnum 8388672注意事项:
echo 'execute function task ("set sql tracing on",100000, "1k", "low","demodb");' | dbaccess sysadmin
echo 'execute function task ("set sql tracing on",100000, "2k", "low","demodb");' | dbaccess sysadmin
当需要将sysadmin数据库的dbspace修改为非rootdbs,我们需要重建。
execute function task("reset sysadmin", "bigdatadbs");
!
Database selected.
(expression) SCHAPI: 'sysadmin' database will be moved to 'bigdatadbs'. See on
line message log.
1 row(s) retrieved.
Database closed.
15:29:24 SCHAPI: 'sysadmin' database will be moved to 'bigdatadbs'. See online message log.
15:29:24 Building 'sysadmin' database ...
15:29:39 Unloading Module <SPLNULL>
dbaccess sysmaster
SELECT trim(name) dbname,trim(owner) owner,created,
TRIM(DBINFO('dbspace',partnum)) AS dbspace,
CASE WHEN is_logging+is_buff_log=1 THEN "Unbuffered logging"
WHEN is_logging+is_buff_log=2 THEN "Buffered logging"
WHEN is_logging+is_buff_log=0 THEN "No logging"
ELSE "" END Logging_mode
FROM sysdatabases;
dbname sysadmin
owner informix
created 09/30/2011
dbspace bigdatadbs
logging_mode Unbuffered logging