DB2中为一个表添加索引怎么做?

DB2中为一个表添加索引怎么做?,第1张

1、首先,进行打开pycharm的界面当中,进行选中database选项

2、进行选中了database的选项,进行选中上 表 的选项。

3、然后进行对表右键的 *** 作,d出了下拉菜单选中为 new 的选项。

4、进行选中为new的选项,d出了下一级菜单选中为 index 的选项。

5、这样就会d出了modify table的界面当中,进行点击 添加 的按钮。

6、然后在name的输入框中进行输入索引名称。然后进行点击 exeute的选项。

首先在创建完索引之后,先运行:

runstats on table schema.tablename and detailed indexes all

运行完统计后再分析你要执行的SQL语句,看索引能否用的上。

DB2是按照成本来进行语句执行的优化的,只要你正确的运行了统计,一般情况下,会优先选择使用索引。

也有部分情况下不会使用索引。比如某个cloumn,同时创建了在索引1和索引2中,那DB2到底会选择索引1和索引2,就要看他认为使用哪个索引的成本低了。

很多不使用索引的情况是因为你们有做完正确的统计。

所以首先建议你先针对该表做一下完整的统计,命令见上。

从DB2 9.7开始,你可以使用下面的查询检查DB2中未使用的索引:

select indschema,indname,tabname from syscat.indexes

where LASTUSED=‘01/01/0001’

LASTUSED列告诉你索引在DB2中的最后一次访问时间,但这个方法并不能保证百分之百返回准确的值,因为DB2也会将更新这一列的时间当作访问时间,但你可以使用db2pd工具准确地获得自数据库启动以来索引的最后一次访问时间。

这个查询只能工作在DB2 9.7或更高版本,但db2pd可以用于其它版本,在SYSCAT.TABLES,SYSCAT.INDEXES和SYSCAT.PACKAGES表中都已经增加了一列LASTUSED,因此从DB2 9.7开始,你可以轻松查询出未使用的索引,表和包。

具体请参见链接


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11915255.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存