- 博客(60)
- 资源 (39)
- 收藏
- 关注
原创 Oracle RAC数据库环境下临时表空间的设置问题
Oracle RAC数据库环境下临时表空间的设置问题在RAC数据库中,有一个非常容易被忽视的问题,那就是RAC数据库的临时表空间的设置。这个问题对Oracle RAC数据库的其实非常重要,其对数据库的整体负载均衡以及请求的及时响应,都有非常重要的影响。在RAC数据库中,临时表空间会被所有的数据库实例所共享。同时临时表空间会被划分为盘区,即Extent,同时这些盘区会被缓存在实例的SGA中。
2016-01-29 14:43:38
4733
原创 Java异常处理新特性
在Java7中Java对其自身的异常处理机制进行了改进,同时增加了很多新的特性,这些特性对于编写更加可靠的程序有着非常大的帮助作用。这里我们对其进行详细的介绍。1 try-with-resources语句 Java7中提供了一种更为简单实用的用于处理资源使用异常处理的特性,称为try-with-resources,这个所谓的try-with-resources,是个语法糖。实际上就是
2015-02-25 11:39:03
1788
原创 并行化资源池队列3——紧密相关的同步化队列
紧密相关的同步化队列现在来看一种紧密相关的同步方式。一个或多个生产者线程生产数据,并由一个或多个消费者线程按照先进先出的次序来获取。但是,生产者与消费者之间必须相互回合,即向队列中放入一个元素的生产者应阻塞直到该元素被另外一个消费者取出,反之亦然。其实现的伪代码描述如下:publicclassSynchronousQueue{ T item=null;
2014-12-11 16:52:45
1242
原创 并行化资源池队列2——无锁化的无界队列
无锁化的无界队列Java™ 5.0 第一次让使用 Java 语言开发非阻塞算法成为可能,java.util.concurrent 包充分地利用了这个功能。非阻塞算法属于并发算法,它们可以安全地派生它们的线程,不通过锁定派生,而是通过低级的原子性的硬件原生形式 —— 例如比较和交换。非阻塞算法的设计与实现极为困难,但是它们能够提供更好的吞吐率,对生存问题(例如死锁和优先级反转)也能提供更
2014-12-10 13:44:17
2349
2
原创 并行化资源池队列1——部分有界队列
并行化资源池队列1前言 在并发系统中很多地方都要用到作为资源池的并行化队列,如在大多数应用中,一个或多个生产者线程生产数据,一个或多个消费者消费数据。这些数据元素可以是需要执行的的任务、要解释的键盘输入、待处理的订单或需要解码的数据包。有的时候生产者会突然加速,产生数据的速度会远远超过消费者使用数据的速度。为了使消费者可以跟得上生产者,需要生产者和消费者之间放置一个缓冲区,将那些来
2014-12-09 19:19:42
3696
1
原创 解析Oracle数据扫描 Oracle SQL查询优化 总结篇
之前我们讨论了在数据库中数据读取操作的类型,重点讨论了对数据读取操作大为有益的局部范围扫描的数据读取方式,同时还探讨了数据库优化器模式对于启用局部范围扫描的影响,以及启用局部范围扫描的前提下优化器设置的原则,之后我们通过探讨一个语句中查询条件的类别及其所起到的作用,并通过查询条件的类别和作用,得出了提升局部范围数据扫描的原则,即“局部范围扫描性能提升策略描述矩阵”。 接下来我们又
2012-05-10 00:16:04
1599
原创 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(7)
通过编写PL/SQL函数实现局部范围扫描 通过Oracle提供的PL/SQL编程语言,可以实现创建过程化SQL函数。在函数中不仅可以存在一个以上的SQL,而且还可以存在多样化的运算、条件处理、循环执行等语句。它依据外部所接受的值或固定的常量来执行必要的数据处理,并返回一个最终的处理结果。因此,我们可以通过编写函数,来处理复杂全局数据范围的运算,并通过函数将这些操作包装起来,从而避免
2012-05-09 17:43:47
1447
原创 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(6)
通过分离SQL语句实现局部范围数据扫描 通常情况下应该尽量使实现某个功能的SQL语句的各个组成部分放在一起运行比较有效。但是在少数的情况下,使用将SQL分离的方法反倒比较有效。这种情况主要存在于,经常对具有1:M关系的两张表进行查询时,起到对“M”方过滤条件的数据来自于”1”方。通常“M”方的数据会比较多的可能性较大,如果此时为“1”方的表赋予了一个对应数据范围较大的查询条件,则
2012-05-08 12:52:45
1614
原创 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(5)
利用嵌套视图实现局部范围数据扫描 很显然有些SQL语句只能进行全部范围数据扫描,而无法直接进行局部范围数据扫描,如:排序操作和分组统计操作。这些操作的执行特点决定了必须要得到全部数据范围内的数据,才能够得到最后的执行结果。 但是面对这种SQL语句,我们虽然不能直接引导它们进行局部范围数据扫描,但是我们可以采用间接的手段将这些语句引导成按照局部范围扫描来执行。我们
2012-05-07 18:43:57
1302
原创 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(4)
灵活应用ROWNUM虚拟列 Rownum并不是表中实际存在的物理列,而是一个可以被使用在任何SQL语句中的虚拟列。如果能够正确的理解Rownum概念和特性,那么就可以将其应用在Where条件中,引导优化器只处理指定的行数,因此可见这属于局部范围扫描范畴。但是如果不了解Rownum的特性就草率的使用它,则有可能无法输出期望的结果,同时也无法按照设想的数据扫描方式运行。现在讨论一下如何利用R
2012-05-06 15:23:12
1315
原创 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(3)
过滤型局部范围扫描 在日常应用开发过程中,经常会遇到需要判断满足某些查询条件的集合是否存在,其实这种操作本质上是一种特殊的过滤操作,既需要用一个集合为源,另一个集合为判断标准,使用这个判断标准作为过滤器去过滤源集合。 在执行这种操作过程中,最理想的执行方式是当遇到第一个满足条件的记录时就停止整个执行过程返回结果,因为此时已经确认了满足条件的集合的存在,如果此时批量
2012-05-04 00:24:57
1403
原创 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(2)
发现只通过索引就能获取查询数据的机会 如果能够有效的通过索引来获取数据,那么无疑会对查询性能提供很大的帮助。但是如果索引的选择性较差时,或者虽然索引的选择性很好,但是要查询的数据范围很大时(如:进行计数、求和等数据统计时),那么此时通过索引来查询数据时,就很可能对数据查询性能造成伤害。为什么会这样?这主要是由于通过索引来扫描数据的特点决定的。通过索引来获取数据时,在查询第一条满
2012-05-03 14:21:09
1541
原创 解析Oracle数据扫描 Oracle SQL查询优化 引导局部范围数据扫描的方法(1)
设法改变访问路径 前面说过一个SQL语句如果进行引发排序的操作,通常会进行全部范围扫描。如下面的SQL语句:Select * from product where item_cd like ‘AB%’ and category like ‘C%’order by item_cd desc;由于存在排序操作,因此无法进行局部范围扫描。但是我们知道,如果在字段item_cd
2012-05-01 13:00:51
1694
原创 解析Oracle数据扫描 Oracle SQL查询优化 提高局部范围数据扫描执行性能的原理
解析Oracle数据扫描 Oracle SQL查询优化(2)2、 提高局部范围数据扫描执行性能的原理:2.1查询条件的类别与作用: 当我们发起一个带有条件的查询SQL语句时,通常会赋予该语句多个查询条件,在这些查询条件中,通常会有一个或者几个查询条件会作为数据检索的发起者,这些作为发起者的查询条件称为“驱动查询条件”;同时那些不作为数据检索发起者的查询条件,在整个
2012-04-29 14:51:37
2656
原创 解析Oracle数据扫描 Oracle SQL查询优化 数据读取方式
解析Oracle数据扫描——Oracle SQL查询优化(1)数据读取方式1、 Oracle数据读取操作:1.1数据读取操作类型: 在任何的数据库中,当我们发起一个SQL语句进行数据查询时,SQL执行引擎为了能够返回我们需要的数据,都会进行数据扫描。这个扫描可能直接发生在特定的内存空间中,也可能发生在存放数据的磁盘上。但无论如何归结起来,数据扫描的类型大致可以
2012-04-29 00:00:48
2982
原创 Oracle审计功能
Oracle审计功能一、 审计分类:Oracle中审计总体上可分为“标准审计”和“细粒度审计”后者也称为“基于政策的审计”,在Oracle10G之后功能得到很大增强。其中标准审计可分为用户级审计和系统级审计。用户级审计是任何Oracle用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SQL操作
2010-05-27 10:06:00
40774
1
原创 Oracle直方图的详细解析
Oracle直方图解析一、 何谓直方图:直方图是一种统计学上的工具,并非Oracle专有。通常用于对被管理对象的某个方面的质量情况进行管理,通常情况下它会表现为一种几何图形表,这个图形表是根据从实际环境中所收集来的被管理对象某个方面的质量分布情况的数据所绘制成的,通常会画成以数量为底边,以频度为高度的一系列连接起来的矩形图,因此直方图在统计学上也称为质量分布图。比如下图所示,是一个
2010-05-11 13:04:00
27951
3
原创 如何加速Oracle大批量数据处理
如何加速Oracle大批量数据处理一、 提高DML操作的办法:简单说来:1、暂停索引,更新后恢复.避免在更新的过程中涉及到索引的重建.2、批量更新,每更新一些记录后及时进行提交动作.避免大量占用回滚段和或临时表空间.3、创建一临时的大的表空间用来应对这些更新动作.4、批量更新,每更新一些记录后及时进行提交动作.避免大量占用回滚段和或临时表空间.5、创建一临时
2010-01-12 14:56:00
20831
1
原创 使用dbms_repair修复受损数据块
使用dbms_repair修复受损数据块1、根据在全表扫描中出现的受损数据块的绝对文件号和数据块号的提示确定受损对象:select segment_name,segment_type,owner,tablespace_name,partition_name from dba_extents where file_id = &AFN and &BL between block_i
2009-10-21 10:00:00
1127
原创 《冬眠的力量-Hibernate 持久化技术详解》下载
《冬眠的力量-Hibernate 持久化技术详解》这本书是本人多年基于Hibernate的系统架构设计以及系统开发经验总结和对Hibernate原理的研究成果。 本书成书于2007年8月,一直作为本人目前就职公司的内部技术手册参考,某些相关的章节也曾在本人的优快云博客中发表,现将该书PDF版贡献出来,以求同广大网友共勉。 该书是第一版,在2007年成书之后经过了几次补充和
2009-06-08 14:02:00
1062
原创 Unix系统资源管理(5)-网络性能
网络性能1、 网络性能监控:有时系统网络会成为系统运行的瓶颈,比如可能出现很大的丢包率、很大的冲突率、很大的错误重传率等。当这些问题大规模爆发时,对系统的性能和服务响应是致命的伤害。因此要使系统稳定运行,就必须对网络的运行状态给与关注。在Unix和Linux系统中可以通过netstat –s命令来监控网络运行状态,在使用这个命令的同时还可以加上-p参数,来对个别协议进行过滤。如
2009-05-22 11:30:00
1573
原创 Unix系统资源管理(4)—磁盘I/O性能问题
磁盘I/O性能问题1、 磁盘I/O的规划与监控:影响系统性能的第四个重要的方面就是磁盘I/O,而且往往这个方面的影响程度与出问题的概率要高于前几个方面。尤其对于很多应用系统的性能问题,如果追查下去往往都会归结到I/O问题上。因此这个部分的关注度我认为更应该加大。我有一个观点,就是磁盘性能关键在于安装时的规划与配置,而不是事后采用很多“先进手段”去监控,然后绞尽脑汁的去分析调整。
2009-05-21 15:44:00
3789
原创 Unix系统资源管理(3)-内存资源使用管理
内存资源管理 1、 虚拟内存与内存交换和分页:内存资源对系统性能的影响丝毫不亚于CPU对系统的影响甚至更加重要,因此更应该给与足够的重视。几乎所有的现代操作系统都会使用“虚拟内存”技术来管理系统的内存资源。虚拟内存管理带来的好处在于,任何时候并不是所有进程内存需求总量都是必需的。在内存中只会保留那些需要用到的进程映像,那些暂不需要的进程映像可以暂时存放在磁盘上,以让出内存空间供其它进
2009-05-15 13:34:00
3371
原创 Unix系统资源管理(2)-管理CPU使用
管理CPU使用1、 优先数和进程优先级:在大多数的Unix系统中都会使用基于优先级的循环调度算法来为多个竞争资源的进程分配CPU资源。所有的进程都会被分配一个执行优先级,这是一个整数值,改制会随着几个因素动态的计算更新。而且在Unix系统中会为不同优先级的进程分配不同的优先级队列,虽然系统中可能同时存在大量进程,但是同一时刻只会有少数进程占用CPU。并且一旦某个进程开始运行,它便会持
2009-05-13 16:26:00
2835
原创 Unix系统资源管理(1)-系统进程监控
系统进程监控Unix能够监控进程执行,并且能够有限的制定执行优先级。这样做,可以控制CPU时间分配并间接控制内存的使用。1、uptime命令: uptime 3:24pm up 2 days, 2:41,16 users,load average:1.90,1.43,1.33 Uptime命令将会报告当前时间、系统运行时间以及三个负荷均值,负荷均值是对CPU使用量的粗略度
2009-05-13 16:03:00
2921
原创 OraclePGA原理及管理
一、PGA概念:PGA指程序全局区,是服务器进程(ServerProcess)使用的一块包含数据和控制信息的内存区域,PGA是非共享的内存,在服务器进程启动或创建时分配,并为服务器进程所专用。PGA的分配以及所存储的信息随Oracle的工作状态(专有模式和共享模式)不同而不同,但不管如何PGA通常可分为固定PGA和可变PGA区域,如果服务器工作在专有服务器模式下,那么可变PGA就将分
2009-02-04 13:59:00
1400
原创 参数文件管理及恢复
1、 如果使用RMAN建议开启控制文件自动备份,当开启控制文件自动备份后,在系统结构发生变化时,将会自动对控制文件以及Spfile文件进行备份,这样在参数文件损坏时可以实现恢复,在RMAN中可以通过如下命令进行设置:rman>configure controlfile autobackup on;----启动控制文件自动备份rman>configure controlfile au
2009-02-01 15:52:00
946
原创 Oracle损坏数据块的处理与恢复
一、 没有备份的情况下: 在这种情况下肯定会造成数据的丢失,在这种情况下应采取将数据导出然后重见表在进行导入的方法,来尽量恢复损坏数据块中的数据,但是在有坏块的情况下是不允许导出的,如下命令: Exp test/test file=t.dmp tables=t; 导出命令在执行中会报ORA-01578错误,在这错误提示中会提示那个文件号的文件以及这个文件中的哪个
2009-01-31 23:09:00
972
原创 克隆数据库
克隆数据库这篇文章中将要建立前两篇文章中的实例数据库Practice的一个克隆数据库,我们将之命名为CLNE,我们这里的原数据与克隆的数据库兹同一台机器上,因此无需再进行Oracle安装,但一般情况下需要首先在克隆目标机器上安装Oracle软件,而且要与原数据库的Oracle具有相同的版本,具体步骤如下:1、准备CLNE数据库: ①、为CLNE数据库创建所需的路径,执行如下命令
2008-09-26 09:02:00
2039
原创 Oracle用户管理的备份与恢复2
在打开状态下备份数据库一、备份数据文件和控制文件1、 创建热备份脚本open_backup.sql:set feedback off pagesize 0 heading off verify off linesize 100 trimspool ondefine dir=’/oradata/practice/backup’define fil=’/tmp/open_b
2008-09-12 13:20:00
1552
原创 Oracle用户管理的备份与恢复1
Oracle用户管理的备份与恢复 关闭数据库的备份与还原1、 准备备份脚本(该脚本针对Unix及Linux系统,但很容易修改为针对Windows):Remark Set SQL*Plus variables to manipulate outputset feedback off heading off verify off trimspoll off
2008-09-05 14:56:00
1509
原创 性能调优——Oracle索引技术的应用与剖析
性能调优——Oracle索引技术的应用与剖析最近这段时间,总是想写一些有关性能调优的文章。但是苦于没有一个实际的案例,本人又不愿空谈理论,因为这些理论随便在网上就能找到,而且基本上千篇一律,因为理论上的那些东西就那么多,再怎么讲也不如一个实际案例生动。还好上天不负有心人,前些天让我碰到了一个实际的案例。这个实际案例是这样,本人所在的城市的某个政府职能部门,要推出一项新的服务,这项服务就是
2008-07-11 17:47:00
2122
3
原创 Oracle内存结构与实例及其管理
Oracle内存结构与实例及其管理1、 内存结构:Oracle数据库的总体结构如下图:每个Oracle数据库都是由Oracle Instance(实例)与数据库(数据文件,控制文件、重做日志文件)组成,其中所谓实例就是用户同数据库交互的媒介,用户通过于一个实例相连来操作数据库。而实例又是由统一的内存结构(SGA,PGA,UGA)和一批内存驻留进程组成。实例在操作系统中用ORACL
2008-06-26 12:06:00
1379
原创 迁移Oracle数据的两个方案(待续)
迁移Oracle数据的两个方案(待续)方案一:采用物理standby进行迁移,该方法适用于在相同操作系统平台,相同数据库版本之间进行数据迁移。在Oracle11G中可以实现,从 10G到11G的物理Standby的迁移,而且可以实现从W
2008-06-13 13:25:00
1542
原创 并发编程原则与技术(五)——避免并发编程活跃度危险
并发编程原则(五)避免并发编程活跃度危险前 言:在这个系列文章中的前几篇文章中,我们的讨论主要围绕着在并发环境下如何确保对共享对象的访问安全。但是很多情况下安全性与活跃度是一对矛盾。通常我们使用锁来保证线程安全,但是如果锁被滥用可能引起系统的“活跃度”的下降,使系统的响应减缓以及吞吐量的降低。更严重的情况是可能会引起各种活跃度危险,比如:CPU饥饿,弱响应,活锁甚至死锁。
2008-01-29 17:39:00
1635
原创 并发编程原则与技术(四)——组合对象
并发编程原则(四)组合对象前 言: 之前的系列文章中我们讨论了编写线程安全程序的原则与技术。但是作为我们日常的开发,总是想非常快速的编写出高效安全的多线程程序。因此我们不想每一次都去分析内存的访问、锁的竞争等等一系列问题,而是希望基于线程安全组件来构造出更大的线程安全组件。或者我们可能还会遇到扩展一个线程安全类的情况。本篇文章我们将会讨论一些模式,这些模式会帮助我们更好的
2008-01-28 10:37:00
1076
原创 并发编程原则与技术(三)——对象的发布和逸出
并发编程原则(三)对象的发布和逸出前 言:在本篇文章中我们将继续讨论有关并发编程中的其他方面的问题,这里我们主要讨论对象的发布和逸出。这对于多线程并发环境下,线程安全极为重要。往往一些问题的发生都是由于不正确的发布了对象造成了对象逸出而引起的,因此如果系统开发中需要发布一些对象,必须要做到安全发布,以免造成安全隐患。(1)、发布和逸出: 所谓发布对象是指使一个对象能够
2008-01-21 10:09:00
2674
原创 并发编程原则与技术(二)——内存可见性与共享对象安全访问方式
并发编程原则(二)内存可见性与共享对象安全访问方式前 言:在这个系列的上一篇文章中,我们讨论了线程安全性,以及保护线程安全性的重要工具——“锁”技术。而且我们提到了,编写正确的并发程序的关键在于对共享的、可变的状态进行访问管理,使访问线程持续进行正确的活动。在这篇文章中我们要重点讨论,并发编程中有关共享对象的另一些重要的问题,那就是“内存可见性问题”以及“共享对象的安全访
2008-01-17 15:14:00
1783
原创 系列文章:并发编程原则与技术(一)——线程安全
并发编程原则(一)线程安全总述:现在我们所处的这个时代,多核已经成为不可阻挡的历史潮流,流行多年的“摩尔定律”已经渐露疲态,电子电路的物理极限已经无法突破,在这样的环境下“多核”应运而生,这正好比一次汹涌的浪潮冲击着IT技术的各个层面,这次浪潮必将对固有的技术和理念带来深远的影响。对于程序员来说,多核带来的变化并不像时钟频率增加那样透明。以前我们在进行程序开发以及系统设计
2008-01-11 17:54:00
1764
Java异常处理新特性
2015-02-25
面向对象的 JavaScript 编程及其 Scope 处理
2012-06-20
Unix系统性能监控与系统资源管理
2009-05-22
命令模式6
2007-06-27
Oracle 8i PL_SQL高级程序设计
2007-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人