-
安装与创建sybase15.7 for linux 6的统计信息更新服务
资源介绍
统计信息更新
update statistics的使用
优化器使用统计信息时,首先把统计信息读入内存 中, 在表的数据发生改变时,其内存中的统计信息也随之发生改变,但只有在正常关闭数据库,运行sp_flushstats,执行optdiag以及执行 update statistic等情况下统计信息才会被立即写入磁盘,在数据库运行过程中,housekeeper进程会在空闲时将统计信息写入磁盘。在数据库长期运 行后,由于统计信息更新的滞后,会导致统计信息出现误差,这时候不准确的统计信息会导致优化器选择错误的执行计划,所以在数据库运行一段时间以后需要更新 统计信息。更新的命令有:
update statistics table_name [index_name]
---更新表以及和特定索引的统计信息
update statistics table_name [col_name]
---更新特定列的统计信息
update index statistics table_name [index_name]
---更新索引以及索引头列以及头列组合的统计信息
update all statistics table_name
---更新表中所有列的统计信息
需要注意的是,更新统计信息需要扫描全表或是所有索引,因此对于数据量很大的表会使用很长时间,这期间数据库会对表加锁,有可能阻塞表的插入更新和删除操作。
对于一般的查询使用update index statistics table_name 就足够了,如果对于某些特殊的查询,可以考虑对于使用到的列进行列统计信息的单独更新,这样可以节约更新统计信息的时间。