如何对一个oracle11gsql语句进行统计分析

可以通过district来取出字段,之后通过count计算总数量。

sql:select count(district id) from tablename;

如果id字段没有空值的话,可以通过count统计字段的总数量(字段内容可能重复)。

sql:select count(id) from tablename;如何在ORACLE系统中对表进行统计分析

begin

dbms_stats.gather_table_stats( ownname=>'XXXX',tabname => 'XXXX' ,ESTIMATE_PERCENT=>100,degree=>8, CASCADE=>true);

end;只知道对Oracle数据库的单表做表分析语句是 analyze table 表名 compute statistics

全表还是全库啊?

全表的话,可以针对某个用户来分析:

SQL> exec dbms_stats.gather_schema_stats(ownname=>'scott',options=>'gather auto',estimate_percent=>dbms_stats.auto_sample_size,degree=>6); 具体的参数可以根据实际情况修改,也可以加其他的参数进来

全库的话,10g会自动分析的,但是也可以收到分析,统计分析要消耗大量资源,建议不要在业务繁忙时做:

SQL> exec dbms_stats.gather_system_stats('start'); 开始

SQL> exec dbms_stats.gather_system_stats('stop'); 结束

SQL> exec dbms_stats.gather_system_stats('interval',interval=>N); 一直工作N分钟oracle分析表有什么用

Oracle中分析表的作用

1.分析更新表的统计信息,,有可能导致执行计划改变..

2.以的analyze table abc compute statistics;这条为例,生成的统计信息会存在于user_tables这个视图,查看一下select * from user_tables where table_name='ABC';

观察一下NUM_ROWS,BLOCKS,AVG_SPACE,AVG_ROW_LEN几列你就会明白,这就是变化。分析完表之后,会发现DBA_tables 视图中,以前很多列值是空的,现在开始有数据了。这些数据就是分析表得到的.

3.怎么样分析表或索引

命令行方式可以采用analyze命令

如Analyze table tablename compute statistics;

Analyze index|cluster indexname estimate statistics;

ANALYZE TABLE tablename COMPUTE STATISTICS

FOR TABLE

FOR ALL [LOCAL] INDEXES

FOR ALL [INDEXED] COLUMNS;

ANALYZE TABLE tablename DELETE STATISTICS

ANALYZE TABLE tablename VALIDATE REF UPDATE

ANALYZE TABLE tablename VALIDATE STRUCTURE

[CASCADE]|[INTO TableName]

ANALYZE TABLE tablename LIST CHAINED ROWS [INTO TableName]

等等。

如果想分析整个用户或数据库,还可以采用工具包,可以并行分析

Dbms_utility(8i以前的工具包)

Dbms_stats(8i以后提供的工具包)

dbms_stats.gather_schema_stats(User,estimate_percent=>100,cascade=> TRUE);

dbms_stats.gather_table_stats(User,TableName,degree => 4,cascade => true);

这是对命令与工具包的一些总结

(1)、对于分区表,建议使用DBMS_STATS,而不是使用Analyze语句。

a) 可以并行进行,对多个用户,多个Table

b) 可以得到整个分区表的数据和单个分区的数据。

c) 可以在不同级别上Compute Statistics:单个分区,子分区,全表,所有分区

d) 可以倒出统计信息

e) 可以用户自动收集统计信息

(2)、DBMS_STATS的缺点

a) 不能Validate Structure

b) 不能收集CHAINED ROWS, 不能收集CLUSTER TABLE的信息,这两个仍旧需要使用Analyze语句。

c) DBMS_STATS 默认不对索引进行Analyze,因为默认Cascade是False,需要手工指定为True

(3)、对于Oracle 9里面的External Table,Analyze不能使用,只能使用DBMS_STATS来收集信息.oracle数据库 ,想统计一个用户下,所有表的记录的总条数,用什么语句可以实现?

analyze table table_name COMPUTE STATISTICS

对表分析后在使用

select count(^) from table_name

如果你的table_name 有主键 ID

select count(ID) from table_name 在统计的时候会用到主键索引oracle日结统计,求大神帮忙分析一下统计SQL如何书写

表应该加上注释,要不没法写。

大概思路是这样的,首先统计出每一天每一个员工最晚一次的日结时间。这里分为两种情况,周5和其他日期需要分别判断。

然后将用户表和刚才的日结汇总表进行左连接,日结汇总表为空的部分就意味着该员工没有日结,外面套一层,count一下即可。oracle为什么要搜集统计信息

alter system set events '10053 trace name context forever,level 2';

select * from scott.dept;

alter system set events '10053 trace name context off';

到$ORACLE_BASE/diag/rdbms/$ORACLE_SID/trace/ (11g路径)找一个叫 *ora*.trc (默认是这个)的文件,里面在生成执行计划的时候会用的下面的这个就是统计信息里面的信息

...

***************************************

BASE STATISTICAL INFORMATION

***********************

Table Stats::

Table: DEPT Alias: DEPT

#Rows: 4 #Blks: 5 AvgRowLen: 20.00 ChainCnt: 0.00

Index Stats::

Index: PK_DEPT Col#: 1

LVLS: 0 #LB: 1 #DK: 4 LB/K: 1.00 DB/K: 1.00 CLUF: 1.00

...

这个是表及索引的基础信息,生成执行计划时,通过一系列参数来计算成本,这就是CBO用获得最低成本的计划的依据之一 如果统计信息准确则可以生成较好的计划,如果统计信息不准确 生成的计划就不一定是最优的怎么样停止oracle的统计分析

在sysdba下执行:

exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');

就可以了。oracle表分析命令dbms_stats分析表使用问题

主要收集如行数,列的distince、表段大小等等

如果做表关联查询,统计信息也会用到

一般要分析,不然统计信息不准可能走错执行计划,比如一个分区原先1行,插入后变几亿行,这时统计信息不准确的话可能就走错误执行计划了。在oracle生产库中,我的一个表的数据有10亿行记录,怎么快速计算有多少行,不要告诉我用count(*)之类的答案

oracle 有个数据字典 表分析之后 会记录行数 貌似是 all_tables 标签:count id 字段

oracle 日结 数据量大,如何对一个oracle11gsql语相关推荐

  1. Activiti+Oracle,在数据量大的时候报错:无法支持1000列以上

    2019独角兽企业重金招聘Python工程师标准>>> 因为业务需要,我这里可能需要非常多的人进行会签任务操作 大约是几百人 然后Activiti在存流程变量的时候,系统报错如下图所 ...

  2. ORACLE数据库,数据量大,转移数据到备份表语句

    INSERT INTO TEMP_BUS_TRAVEL_INFO ( SELECT * FROM BUS_TRAVEL_INFO t where to_Char( start_time,'YYYYMM ...

  3. flink读取不到文件_日处理数据量超10亿:友信金服基于Flink构建实时用户画像系统的实践...

    简介: 友信金服公司推行全域的数据体系战略,通过打通和整合集团各个业务线数据,利用大数据.人工智能等技术构建统一的数据资产,如 ID-Mapping.用户标签等.友信金服用户画像项目正是以此为背景成立 ...

  4. 我艹,MySQL数据量大时,delete操作无法命中索引。

    来自:Java面试那些事儿 最近,在脉脉上看到一个楼主提出的问题:MySQL数据量大时,delete操作无法命中索引:并且还附上了相关案例截图. 最终,楼主通过开启MySQL分析优化器追踪,定位到是优 ...

  5. 历史数据如何处理_数据库表数据量大读写缓慢如何优化(1)【冷热分离】

    今天讨论的内容是冷热分离,也许概念并不陌生,对其使用场景也比较熟悉,但涉及锁的内容时仍然需要认真思考,这部分内容在我们实际开发中的"坑"还是不少的. 业务场景一 曾经经历过供应链相 ...

  6. mysql给数据量大的表添加索引的办法

    有一个问题,一张表有3百万条记录,随着时间的增加,记录量会更多,此时查询速度很慢.在创建此表前没有未相应字段添加索引,所以此时需要为表添加索引.但是因为数据量大的原因,索引添加不成功,想了很多办法,终 ...

  7. 面试官问单表数据量大一定要分库分表吗?我们用六个字和十张图回答

    1 文章概述 在业务发展初期单表完全可以满足业务需求,在阿里巴巴开发手册也建议:单表行数超过500万行或者单表容量超过2GB才推荐进行分库分表,如果预计三年后数据量根本达不到这个级别,请不要在创建表时 ...

  8. 解决Mysql数据量大的时候 分页优化(使用limit)的问题

    解决Mysql数据量大的时候 分页优化(使用limit)的问题 参考文章: (1)解决Mysql数据量大的时候 分页优化(使用limit)的问题 (2)https://www.cnblogs.com/ ...

  9. Echars 折线图 自动向右平移显示数据(数据量大的时候适应)

    <!DOCTYPE html> <html><head><meta charset="utf-8"><title>Ech ...

最新文章

  1. 磁盘管理,磁盘挂在mount,挂载光盘镜像文件,挂在U盘,umount 卸载命令, dd
  2. python文件式_python中文件操作的六种模式及对文件某一行进行修改的方法
  3. S7 Linux用户管理及用户信息查询命令
  4. Python界面 PyQT可视化开发(python3+PyQt5+Qt Designer)
  5. 【Elasticsearch】关于 Analyzers 的一切,第一部分
  6. centos7 安装postgresql10
  7. 黄大刀 :机房建设主要标准规范的介绍
  8. 大数据产品推荐:神策分析——可私有化部署的用户行为分析平台
  9. 赵小楼《天道》《遥远的救世主》深度解析(90)谈经论道说心安
  10. php 自己画地图,绘制自己的独家地图
  11. 求1000-2000年的闰年代码
  12. linux常用面试题
  13. opencv图像合成
  14. 阿里云商标注册申请进度查询方法
  15. PDF补丁丁( PDFPatcher.)
  16. 阿里云大数据助理工程师ACA认证最新笔记(2021)
  17. C语言里栈和堆的区别整理
  18. PHP 获取本月与上个月的第一天和最后一天
  19. 如何做好抖音短视频?
  20. 开发实习日记10.11

热门文章

  1. Ubuntu 16.04下Caffe-SSD的应用(四)——ssd_pascal.py源码解读
  2. 【机器学习入门笔记3:OpenCV模块组织结构】20190203
  3. 出现opencv error: assertion failed..........错误时, 一步解决
  4. iOS 向下取整、向上取整、四舍五入
  5. selenium | TypeError:object of type ‘WebElement’ has no len()
  6. Windows 2000配置Web服务器
  7. 厉害了黑科技,动态安全下的防拖库原来可以这么简单!
  8. 在Cloudshare上使用PAL=〉系统检查及初始化
  9. NoSQL(二):创建、管理集群
  10. bat文件注册为Windows服务与依赖关系设置