1.建立表索引 create index 索引名 on 表名(列名,列名); 2.删除表索引 drop index 索引名 on 表名; 3.查看表索引 select * from sysibm.sysindexes where tbname='表名'; ---表名区分大小写 或者在后台可以用: describe indexes for table 表名; 4.查看SQL语句执行计划 db2expln -d 库名 -f test.sql -t -g -z ";" > test
今天看数据库的时候遇到这样一个SQL语句: select substr(a.djxh,) as id, (a.nd || a.yf) DECL_YM, a.zspm_dm as LEVY_ITEM_ID, b.zsxmmc as LEVY_ITEM_NAME, --||'--'||d.zspmmc as DECL_STATUS, a.nsqx_dm as TAX_TERM_CODE, c.nsqxmc as TAX_TERM_NAME, to_char(a.sbqx, 'yyyyMMdd') a
一.db2监控动态SQL(快照监控) db2示例用户登陆后,使用脚本语句db2 get snapshot for all on dbname>snap.out 也可以使用db2 get snapshot for dynamic SQL on dbname>snap.out,此语句是只记录上一语句中的部分 Tips:如果需要监控尽可能多的SQL语句,建议增加DBM配置参数 以下是动态SQL快照 Dynamic SQL Snapshot Result Database name = QINDB D
下面介绍六种建立索引后不起作用的sql语句. 1.使用不等于操作符(<>, !=) SELECT * FROM dept WHERE staff_num <> 1000; × SELECT * FROM dept WHERE staff_num < 1000 OR staff_num > 1000; √ 2.使用 is null 或 is not null 任何包含null值的列都将不会被包含在索引中. 解决这个问题的办法就是:建表时把需要索引的列 定义为非空(not
很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: 1.select * from table1 where name=''zhangsan'' and tID > 10000和执行select * from table1 where tID > 10000 and name=''zhangsan'' 一些人不知道以上两条语句的执行效率是否一样,因为如果简单的从语句先后上看,这两个语句的确是不一样,如果tID是一个聚合索
使用以下脚本查看数据库索引碎片的大小情况: 复制代码代码如下: DBCC SHOWCONTIG WITH FAST, TABLERESULTS, ALL_INDEXES, NO_INFOMSGS 以下使用脚本来处理维护作业: 复制代码代码如下: /*Perform a 'USE <database name>' to select the database in which to run the script.*/ -- Declare variables SET NOCOUNT ON; D