`
文章列表
一个表T(数据量超过10亿,但不是分区表,我也纳闷设计者当初为何不分区),每天定时 根据'最后更新日期'字段(DATE类型,有索引)从中提取一批数据(约一千五百万),并将该部分数据插入到另外一个表R; 请问如何提高效率? 我写法如下: INSERT /*+append*/ INTO R SELECT /*+parallel(T 8)*/  *   FROM T     WHERE LAST_UPD_DATE BETWEEN :date1 AND :date2 ;
  在大数据量的转存过程中,建议使用分批转存(不要一次转存过来),并自己去编写日志,转存过程中,将目标表使用Hint中的/*+append*/进去并后带NOLOGGING,如:INSERT /*+append*/ INTO <table_name> NOLOGGING SELECT .. FROM ...;这样会以最小的日志编写方式进行高水位线插入,另外如果是同步数据可以使用到MERGE,自定义分表快速一次性插入使用INSERT ALL。
当oracle出现性能缓慢、执行效率低下时,分析调优需从多个角度切入,并逐一优化: 1、SQL语句层面上    A 注意语句中数据查询表的的顺序调整,大表在前(接近where)小表在后,若多个表关联情况下,应选择当中的关联表作为 ...
    Oracle会自动为表的主键列建立索引,这个默认的索引是普通的B-Tree索引。对于主键值是按顺序(递增或递减),如序列生产,加入的情况,默认的B-Tree索引并不理想。这是因为如果索引列的值具有严格顺序时,随着数据行的插 ...
1.oracle实例启动时,寻找参数文件的顺序为    spfileSID.ora----->spfile.ora------>initSID.ora 2.spfile与pfile的区别   (1)pfile是文本文件,可以使用文本编辑器进行编辑,而spfile是二进制文件,不能使用任何编辑器进行修改,但是可以使用strings查看文件的内容   (2)pfile里面是静态参数,不能在线修改,而spfile里面有动态参数,可以在线修改,而不用重启oracle 3.可以通过以下命令查看oracle使用pfile启动,还是spfile启动    SQL> show p ...
oracle8i起开始推出表分区的概念,最初只有范围分区、列表分区和hash分区三种类型,10g以后加入了复合分区,其中复合分区又包括:哈希-范围复合分区和哈希-列表复合分区两方式。每个分区都是一个独立的segment,可存放在不同的表空间中。     范围分区(Range):即根据字段值的实际情况来划分范围,以范围作为分区划分的依据,将记录存放在不同分区。如果记录无法预测范围,则可创建一个maxvalue分区,将所有不符合指定范围的记录存入maxvalue分区中。      列表分区(List):需要指定记录字段的具体值,如性别,将'male’和'female'设为两个不同分区存放记录。 ...
PMON (进程监控进程):进程监控进程:负责服务器进程的管理和维护工 作,在进程失败或连接异常发生时该进程负责以下一些清理工作: 1、回滚没有提交的事务 2、释放所持有的当前的表或行锁 3、释放进程占用的SGA资源 4、监视其他oracle的后台进程,在必要时重启这些后台进程 5、向oracle TNS监听器注册刚启动的实例。如果监听器在运行,就与这个监听器通信并传递,如服务名和实例的负载等参数,如果监听器没有启动,进程监控(PMON)会定期 地尝试连接监听来注册实例。     SMON (系统监控进程):系统监控进程的主要作用:数据库实例恢复什么情况下使用到SMON:数据 ...
通过以下实验,来验证Bitmap位图索引较之普通的B-Tree索引锁的“高昂代价”。位图索引会带来“位图段级锁”,实际使用过程一定要充分了解不同索引带来的锁代价情况。 1.为比较区别,创建两种索引类型的测试表1)在表t_bitmap ...
latch 是一种轻量级用于保护oracle共享内存结构,用户并发操作一致性的串行化锁定机制,如SGA中,各种数据被反复从磁盘读取到内存中,如果有并发用户做相同的实情,oracle必须使用一种机制来保证数据在读取的时候只能由一个会话来完成,这就是latch,latch不会造成阻塞,只会导致等待,与每个latch相联系的还有一个清楚的过程,当持有latch进程成为死进程时,系统清楚过程就会被调用;系统lock导致用户等待,需要考虑系统的逻辑设计是否有问题,如多用户对主键的删除或者修改,是否有用户使用select...for update这样的语法,外键是否创建索引。 latch争用多半要考虑系 ...
转自:http://blog.csdn.net/alex197963/article/details/2030204   第一步:以管理员用户登陆 如:conn sys/password@sid as sysdba 第二步:设置可操作目录 需要指定utl_file包可以操作的目录。在oracle 10g以前,可以用以下方法: 1、alter system set utl_file_dir='e:/utl' scope=spfile; 2、在init.ora文件中,配置如下: UTL_F ...
raid0: 熟悉RAID 0的人都知道,它的读写速度是最高的,因为数据是分成小块后,跨多块硬盘同步写入多块硬盘的,这样写入速度就非常快了,如果你不信,可以将三块硬盘组成 RAID 0,然后安装操作系统,你会发现安装时间减少了好多。当然,读取数据的速度相对单块硬盘也会大幅提升,不过这种RAID用的人不多,因为一旦其中一块硬盘 坏掉,数据恢复可能就得请专业的恢复公司了。RAID 0非常适合那些作为代理服务器的缓存使用,要的就是速度。   raid1: RAID 1设计的目的就是为了保证数据的安全,通常我们称之为镜像,即如果你将两块硬盘组成RAID 1,这时你在操作系统中看到的硬盘大小其实只 ...
看了一篇不错的的关于裸设备的和oracle关系注解, 本文转自:http://jackyrong.iteye.com/blog/1678876         裸设备,也叫裸分区(原始分区),是一种没有经过格式化,不被Unix通过文件系统来读取的特殊字符设备。本文收集裸设 ...

EM无法登陆问题

解决ORACLE的EM登录 这几天解决了EM无法登录的问题,顺便也把j数据库程序中常出现的ORA_12518错误解决了,有必要总结一下,我最初遇到的情况是这样的: 1. 编写java程序访问oracle 数据库时总是出现了ORA_12518错误:监听程序无法分 ...
临时表和表变量区别 临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。 临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。 例如,如果创建了 employees 表,则任何在数据库中有使用该表的安全权限的用户都可以使用该表,除非已将其删除。如果数据库会话创建了本地 ...
一、 冷备份    冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份时最快和最安全的方法。冷 ...
Global site tag (gtag.js) - Google Analytics