首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

针对Oracle的表统计信息收集

针对Oracle的表统计信息收集,我们可以使用以下方法:

  1. 使用DBMS_STATS包:

DBMS_STATS是Oracle提供的一个包,用于收集和分析统计信息。可以使用以下命令收集表统计信息:

代码语言:txt
复制
BEGIN
  DBMS_STATS.GATHER_TABLE_STATS('<schema_name>',<table_name>');
END;

其中,<schema_name>是表所属的模式名称,<table_name>是表名称。

  1. 使用USER_TABLES视图:

USER_TABLES视图提供了有关当前用户拥有的表的信息,包括表的行数、列数、平均行长等。可以使用以下查询语句查询表统计信息:

代码语言:txt
复制
SELECT table_name, num_rows, blocks FROM user_tables;

其中,table_name是表名称,num_rows是表中的行数,blocks是表占用的数据块数。

  1. 使用DBA_TABLES视图:

DBA_TABLES视图提供了有关所有表的信息,包括表的行数、列数、平均行长等。需要具有DBA权限才能查询该视图。可以使用以下查询语句查询表统计信息:

代码语言:txt
复制
SELECT owner, table_name, num_rows, blocks FROM dba_tables;

其中,owner是表所属的用户名称,table_name是表名称,num_rows是表中的行数,blocks是表占用的数据块数。

总之,针对Oracle的表统计信息收集,可以使用DBMS_STATS包或者系统视图来实现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【DB笔试面试628】Oracle的统计信息包括哪几种类型?

Oracle数据库里的统计信息是一组存储在数据字典里,且从多个维度描述了数据库里对象的详细信息的一组数据。当Oracle数据库工作在CBO(Cost Based Optimization,基于代价的优化器)模式下时,优化器会根据数据字典中记录的对象的统计信息来评估SQL语句的不同执行计划的成本,从而找到最优或者是相对最优的执行计划。所以,可以说,SQL语句的执行计划由统计信息来决定,若没有统计信息则会采取动态采样的方式来生成执行计划。统计信息决定着SQL的执行计划的正确性,属于SQL执行的指导思想。若统计信息不准确,则会导致表的访问方式(例如应该使用索引,但是选择了全表扫描)、表与表的连接方式出现问题(例如应该使用HJ,但是使用了NL连接),从而导致CBO选择错误的执行计划。

02
领券