oracle的表分析】的更多相关文章

对一个schema下所有对象的进行统计分析 dbms_stats.gather_schema_stats(ownname=> 'trade',estimate_percent => dbms_stats.auto_sample_size,method_opt=> 'for all columns size repeat',degree=>4); 对一张表进行统计分析 dbms_stats.gather_table_stats(ownname=>'trade', tabname…
1.先说oracle表分区是什么吧,这样吧我们来举个桃子,栗子太小,我们就不举了,我们来举个桃子. 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到要的那个打开,嘿嘿,我们得找到什么时候. 这时候,有个人告诉你,你把文件按照特定的规律存在不同的文件夹中,这样的话你就会好找很多. 哇,突然你开窍了,你说,对啊,你好牛逼啊,我怎么没想到呢?分开之后我在找的话就会快很多啊,所以你很高兴,也很服他.于是你就开始做了. --这个不同的文件夹就是不同的分区…
analyze table tablename compute statistics; analyze index indexname compute statistics; 对于使用CBO很有好处,可以使用更可靠的table信息,从而执行计划也可以更准确一些,在10g会自动analyze,之前的版本需要手动定期 生成统计信息,,选择合理的执行计划.. 一.     表分析概念 1.  简单的说,就是收集表和索引的信息,CBO根据这些信息决定SQL最佳的执行路径.通过对表的分析,可以产生一些统计…
ANALYZE TABLE SeikyuTbl COMPUTE Statistics FOR TABLE FOR ALL COLUMNS FOR ALL INDEXES ; 一.优化器的优化方式 Oracle的优化器共有两种的优化方式,即基于规则的优化方式(Rule-Based Optimization,简称为RBO)和基于代价的优化方式(Cost-Based Optimization,简称为CBO). 1.CBO方式:依词义可知,它是看语句的代价(Cost)了,这里的代价主要指Cpu和内存.优…
1.先说oracle表分区是什么吧 你有500万份文件,你要把他存在磁盘上,好嘛,我们就一个文件夹,500万分文件在那儿杵着,我们想找到要的那个打开,嘿嘿,我们得找到什么时候. 这时候,有个人告诉你,你把文件按照特定的规律存在不同的文件夹中,这样的话你就会好找很多. 哇,突然你开窍了,你说,对啊,你好牛逼啊,我怎么没想到呢?分开之后我在找的话就会快很多啊,所以你很高兴,也很服他.于是你就开始做了. --这个不同的文件夹就是不同的分区,文件肯定不是表里的数据,文件怎么会是数据呢? 题回正文,于是你…
analyze table tablename compute statistics; analyze index indexname compute statistics; (analyze 不会重建索引) 遇到当前表的查询或其他性能不好时,就可以对相应的表进行一次分析. 1.如果你的表经常由几千万变成几百万,又变成几千万那么需要制定分析计划定期表分析,同时可以一并分析索引,计算索引中数据的分布情况,这样CBO会选择更加准确的执行计划. 2.如果表结构变化了也要做下,也就是经常对表做dml就需…
如何计算Oracle的表一条记录占用空间的大小? 如何计算Oracle的表记录占用空间的大小? 是把所有字段的大小都加起来吗?varchar(256),char,number算几个字节? ------解决方案-------------------- 第一行的列头信息所占字节数,再加上各个字段所占的字节数据,加起来是多少就是多少 列头信息记录每个字段的数据类型 ------解决方案-------------------- 1,你可以对表进行分析,然后在user_tables中可以看到平均的行长度(…
创建表空间和表ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的oracle中的表就是一张存储数据的表.表空间是逻辑上的划分.方便管理的.数据表空间 (Tablespace)         存放数据总是需要空间, Oracle把一个数据库按功能划分若干空间来保存数据.当然数据存放在磁盘最终是以文件形式,所以一盘一个数据表空间包含一个以上的物理文件数据表         在仓库,我们可能有多间房子,每个房子又有多个货架,每架又有多层. 我们在数据库中存放数据,最…
优化器在形成执行计划时需要做的一个重要选择——如何从数据库查询出需要的数据.对于SQL语句存取的任何表中的任何行,可能存在许多存取路径(存取方法),通过它们可以定位和查询出需要的数据.优化器选择其中自认为是最优化的路径. 在物理层,Oracle读取数据,一次读取的最小单位为数据库块(由多个连续的操作系统块组成),一次读取的最大值由操作系统一次I/O的最大值与multiblock参数共同决定,所以即使只需要一行数据,也是将该行所在的数据库块读入内存.逻辑上,Oracle用如下存取方法访问数据: O…
(外部表创建主要注意创建目录访问权限问题.目录路径格式无空格等不相关字符,即必须是当前表访问用户可以访问:关于表中行数的限制问题,如果不加限制注意添加reject limit unlimited:表中数据格式与创建表时access parameters中的定义需保持同步,适当用skip=1) 外部表概述 外部表只能在Oracle 9i之后来使用.简单地说,外部表,是指不存在于数据库中的表.通过向Oracle提供描述外部表的元数据,我们可以把一个操作系统文件当成一个只读的数据库表,就像这些数据存储…
外部表概述 外部表只能在Oracle 9i之后来使用.简单地说,外部表,是指不存在于数据库中的表.通过向Oracle提供描述外部表的元数据,我们可以把一个操作系统文件当成一个只读的数据库表,就像这些数据存储在一个普通数据库表中一样来进行访问.外部表是对数据库表的延伸. 外部表的特性  位于文件系统之中,按一定格式分割,如文本文件或者其他类型的表可以作为外部表.对外部表的访问可以通过SQL语句来完成,而不需要先将外部表中的数据装载进数据库中.外部数据表都是只读的,因此在外部表不能够执行DML操作,…
数据库操作语句的分类 DDL:数据库模式定义语言,关键字:create DML:数据操纵语言,关键字:Insert.delete.update DCL:数据库控制语言 ,关键字:grant.remove DQL:数据库查询语言,关键字:select oracle表在什么情况下会被锁住 DML锁又可以分为,行锁.表锁.死锁 行锁:当事务执行数据库插入.更新.删除操作时,该事务自动获得操作表中操作行的排它锁. 表级锁:当事务获得行锁后,此事务也将自动获得该行的表锁(共享锁),以防止其它事务进行DDL…
oracle装载表即通过sqlloader的方式导入数据. Oracle 的SQL*LOADER可以将外部数据加载到数据库表中.下面是SQL*LOADER的基本特点: 1)能装入不同数据类型文件及多个数据文件的数据 2)可装入固定格式,自由定界以及可度长格式的数据 3)可以装入二进制,压缩十进制数据 4)一次可对多个表装入数据 5)连接多个物理记录装到一个记录中 6)对一单记录分解再装入到表中 7)可以用 数对制定列生成唯一的KEY 8)可对磁盘或 磁带数据文件装入制表中 9)提供装入错误报告…
执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述.即就是对一个查询任务,做出一份怎样去完成任务的详细方案. 如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题. 看懂执行计划也就成了SQL优化的先决条件. 通过执行计划定位性能问题,定位后就通过建立索引.修改sql等解决问题. 一.执行计划的查看 1.1 设置autotrace autotrace命令如下 序号 命令 解释 1 SET AUTOTRACE OFF 此为默认值,即关闭A…
ORACLE EBS操作某一个FORM界面,或者后台数据库操作某一个表时发现一直出于"假死"状态,可能是该表被某一用户锁定,导致其他用户无法继续操作 复制代码代码如下: --锁表查询SQLSELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s WHERE l.object_id = o.object_id AND l.session_id = s…
Oracle内存全面分析 Oracle的内存配置与oracle性能息息相关.而且关于内存的错误(如4030.4031错误)都是十分令人头疼的问题.可以说,关于内存的配置,是最影响Oracle性能的配置.内存还直接影响到其他两个重要资源的消耗:CPU和IO. 首先,看看Oracle内存存储的主要内容是什么: 程序代码(PLSQL.Java): 关于已经连接的会话的信息,包括当前所有活动和非活动会话: 程序运行时必须的相关信息,例如查询计划: Oracle进程之间共享的信息和相互交流的信息,例如锁:…
下面全面是对Oracle系统表的一些介绍: 数据字典dict总是属于Oracle用户sys的. 1.用户: select username from dba_users; 改口令 alter user spgroup identified by spgtest; 2.表空间: select * from dba_data_files; select * from dba_tablespaces;//表空间 select tablespace_name,sum(bytes), sum(blocks…
Oracle 数据库表中已有重复数据添加唯一键(唯一约束) 问题描述 以 demo 举例,模拟真实场景. 表 TEST_TABLE 有如下字段和数据:id 是主键,code 没有设置键和索引 ID CODE 1 code1 2 code2 3 code2 4 code2 5 code3 通过以上表中数据可以看出 code 是有重复数据的,此时如果我们直接添加唯一键,会报错. 通过 PL/SQL 可视化操作,或者通过 SQL 语句添加(ENABLE NOVALIDATE 的作用是约束新增数据但不会…
Oracle大表改为分区表及表空间切换方案 一.            背景 由于之前数据库表和索引放在一个表空间导致表空间数据文件增长太快,文件数量即将达到Oracle表空间的限制,需要对表(没有分区,有些表数据量多达几十亿,文件大小TB级)进行表空间迁移,并对某些表改造为分区表. 二.            可选方案分析 1.    使用IMP/EXP 导入(import)导出(export)工具年头已久,将数据导出为二进制文件,将会在11g r2之后废弃,只用于遗留数据的导入导出 此工具可…
Oracle统计.分析和优化环境配置 创建批处理文件Login.bat 用于初始化设置系统环境 Login.bat @echo off title eoda mode con cols=140 color 85 set ORACLE_SID=muphy sqlplus eoda/foo 创建数据库脚本文件login.sql 用于初始化SQL*PLUS运行环境 define _editor=vim  --设置编辑器为vim set serveroutput on size 1000000 --设置…
Oracle的表锁死以及解锁 oracle 查看锁死的表,锁死的进程. select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.…
同事最近在忙数据一致性比对工作,需要对不同文本文件中的数据进行比对,有的文件较大,记录较多,如果用普通的文本编辑器打开的话,很显然,会很卡,甚至打不开. 基于此,可将该文本文件的数据导入到数据库中,在集合的层面进行比对. 那么如何将文本文件的数据导入到数据库中呢?在这里,主要利用了Oracle的外部表特性. Oracle外部表支持两种类型的驱动:一种是ORACLE_LOADER,外部表的数据必须来源于文件文件,另一种则是ORACLE_DATAPUMP,外部表的数据必须是二进制dump文件,该du…
外部表介绍 ORACLE外部表用来存取数据库以外的文本文件(Text File)或ORACLE专属格式文件.因此,建立外部表时不会产生段.区.数据块等存储结构,只有与表相关的定义放在数据字典中.外部表,顾名思义,存储在数据库外面的表.当存取时才能从ORACLE专属格式文件中取得数据,外部表仅供查询,不能对外部表的内容进行修改(INSERT.UPDATE.DELETE操作).不能对外部表建立索引.因为创建索引就意味着要存在对应的索引记录.而外部表其实在没有存储在数据库中.故在外部是无法建立索引的.…
Oracle新表使用序列(sequence)作为插入值,初始值不是第一个,oraclesequence 使用oracle11g插入数据时遇到这样一个问题: 1 --创建测试表-- 2 CREATE TABLE tbl_test( 3 test_id NUMBER PRIMARY KEY, 4 test_name VARCHAR2(20) 5 ); 6 7 --为tbl_test创建序列-- 8 CREATE SEQUENCE seq_test 9 INCREMENT BY 1 -- 每次加几个…
oracle执行表数据更新的时候,会遇到锁表问题,比方说,会遇到这样的问题,主要原因是这张表被其他人占用,修改数据没有提交.oracle为了避免脏数据的产生,在其安全机制下,锁住该表. 执行如下操作,select t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid ; 可以查出,占用该表的用户,以及进程和时间等,查出该表被锁的相关信息…
oracle数据库表空间追加数据库文件方法   针对非大文件方式表空间,允许追加文件进行表空间的扩展,单个文件最大大小是32G  第一种方式:表空间增加数据文件    www.2cto.com   1.alter tablespace spacess1 add datafile 'G:\spacess01.DBF' size 30000M;  第二种方式:表空间增加数据文件,设置自增长,限制最大值    2.alter tablespace spacess1 add datafile 'G:\s…
当oracle单表数据量上亿时,对表进行alter table aa add column_1 varchar2(2) defalut 'Y';时,效率及安全性是必须考虑的因素. 本帖以2亿的数据表aa举例: alter table aa add column_1 varchar2(2) defalut 'Y'; Table altered Executed in 3600 seconds 直接用了一个小时,而且在这过程中是加上了表级锁,也就是连查询都是会被等待的,这是相当危险的操作. 为什么会…
Oracle修改表空间大小 使用Oracle10g建立数据库后,向数据库中导入了部分数据,第二天继续向数据库中导入数据表时发生错误: 查了很多资料发现原来是Oracle表空间限制,导致无法继续导入数据的原因.如果在建立数据库时没有设置, Oracle 默认的表空间大小为400M,当数据库中数据量达到这个值,再向数据库中导入数据就会报错.解决方法是 扩展表空间.可以选择将表容量扩大,比如扩展到5G,或者当表空间不够时每次自动增加一定的容量,如每次自增200M. 下面列出详细过程: 1.通过sql…
ORACLE查出表所有的触发器及触发器详细信息 一.查all_triggers表得到trigger_name Sql代码 select trigger_name from all_triggers where table_name='XXX'; 二.根据trigger_name查询出触发器详细信息 Sql代码 select text from all_source where type='TRIGGER' AND name='TR_XXX';…
来源于:  http://www.2cto.com/database/201507/418564.html 一.TEMP表空间作用 临时表空间主要用途是在数据库进行排序运算.管理索引.访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理.当 oracle 里需要用到 sort 的时候, PGA 中 sort_area_size 大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间 , 正常来说,在完成 Select 语句.create inde…