![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 74
lb517290079
这个作者很懒,什么都没留下…
展开
-
数据库设计规范
数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。 一、数据库设计的原则1. 表设计原则(1)规范化与反规范化规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度。但是一个完全规范...原创 2011-11-24 10:40:43 · 759 阅读 · 0 评论 -
Oracle中被锁定的解决办法
一些性能方面的告警信息通过dba_outstanding_alerts表都能查到,被锁定的表如果长期得不到释放,在这里也能查到相关session的sid和serial#。select * from dba_outstanding_alerts v$locked_object视图可以看到当前被锁定的对象,只有那些一直存在的session才有可能是被锁定的,因此不能简单匆忙的下结论...原创 2009-07-27 00:20:12 · 147 阅读 · 0 评论 -
简述Oracle数据仓库的体系结构
Oracle数据仓库的体系结构可以分成三个层次: 数据获取层:Oracle Database Enterprise ETL Option + Oracle Database Data Quality Option 在Oracle Database 10g 同一个软件中实现了从数据模型设计,数据质量管理,ETL 流程设计和元数据管理的全部功能。所有的 ETL 过程可以通过Oracle数据仓库中提...原创 2009-07-27 00:12:19 · 161 阅读 · 0 评论 -
Oracle千万条记录插入与查询小结
最近做了个项目,实现对存在千万条记录的库表进行插入、查询操作。原以为对数据库的插入、查询是件很容易的事,可不知当数据达到百万甚至千万条级别的时候,这一切似乎变得相当困难。几经折腾,总算完成了任务。1、 避免使用Hibernate框架 Hibernate用起来虽然方便,但对于海量数据的操作显得力不从心。 关于插入: 试过用Hibernate一次性进行5万条左右数据的插入,若ID使用s...原创 2009-07-27 00:10:41 · 98 阅读 · 0 评论 -
深度揭露Oracle索引使用中的限制
笔者认为对于数据库索引的作用,应该分两面看。除了肯定其对数据库性能带来的正面影响外,还需要认识到其可能带来的负面影响。只有如此,数据库管理员才能够在正确的场合使用正确的索引。要知道有时候一个错误的索引可能引发死锁,并导致数据库性能的急剧下降或进程终止;而如果数据库管理员能够做出一个正确的判断的话,那么可以使那些本来要运行几个小时甚至一天的进程在几分钟之内就能够完成。所以这两个差距是一个天上、一个地...原创 2009-07-27 00:00:11 · 132 阅读 · 0 评论 -
Oracle数据库索引创建要做到三个适当
在Oracle数据库中,创建索引虽然比较简单。但是要合理的创建索引则比较困难了。笔者认为,在创建索引时要做到三个适当,即在适当的表上、适当的列上创建适当数量的索引。虽然这可以通过一句话来概括优化的索引的基本准则,但是要做到这一点的话,需要数据库管理员做出很大的努力。具体的来说,要做到这个三个适当有如下几个要求。 一、 根据表的大小来创建索引。虽然给表创建索引,可以提高查询的效率。但是数据...原创 2009-07-26 23:59:41 · 79 阅读 · 0 评论 -
Oracle性能调整的要点之数据库配置和IO问题
降低磁盘的IO分散磁盘的IO表空间使用本地管理1. 将文件分散到不同的设备上a. 将数据文件与日志文件分开b. 减少与服务器无关的磁盘IOc. 评估裸设备的使用d. 分割表数据2. 表空间的使用系统表空间保留给数据字典对象创建本地管理表空间以避免空间管理问题将表和索引分散到独立的表空间中使用独立的回滚表空间将大的数据库对象保存在各自独立的表空间中...原创 2009-07-26 23:14:00 · 127 阅读 · 0 评论 -
Oracle的同义词(synonyms)总结
oracle的同义词总结: 从字面上理解就是别名的意思,和试图的功能类似。就是一种映射关系。 1.创建同义词语句: create public synonym table_name for user.table_name; 其中第一个user_table和第二个user_table可以不一样。 此外如果要创建一个远程的数据库上的某张表的同义...原创 2009-07-26 18:26:49 · 87 阅读 · 0 评论 -
学习动态性能表(七)--V$PROCESS
视图包含当前系统Oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。在某些情况下非常有用: 1.如果数据库瓶颈是系统资源(如:cpu,内存),并且占用资源最多的用户总是停留在某几个服务进程,那么进行如下诸项:1>.找出资源进程2>.找出它们的session,你必须将进程与会话联系起来。3>.找出为什么ses...原创 2009-07-23 17:58:54 · 64 阅读 · 0 评论 -
学习动态性能表(六)-(2)-V$SESSION_EVENT
本视图记录了每个session的每一项等待事件。由上文所知V$SESSION_WAIT显示了session的当前等待事件,而V$SESSION_EVENT则记录了session自启动起所有的事件。 V$SESSION_EVENT中的常用列SID:session标识EVENT:session等待的事件TOTAL_WAITS:此session当前事件的总等待数TIME_WAITED:此sessio...原创 2009-07-23 17:58:06 · 81 阅读 · 0 评论 -
学习动态性能表第六篇-(1)-V$SESSION_WAIT
这是一个寻找性能瓶颈的关键视图。它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件)。当系统存在性能问题时,本视图可以做为一个起点指明探寻问题的方向。 V$SESSION_WAIT中,每一个连接到实例的session都对应一条记录。V$SESSION_WAIT中的常用列SID: session标识EVENT: se...原创 2009-07-23 17:56:46 · 90 阅读 · 0 评论 -
学习动态性能表2-V$SESSION
v$session 表中比较常用的几个字段说明^_^1. sid,serial#通过sid我们可以查询与这个session相关的各种统计信息,处理信息.a. select * from v$sesstat where sid = :sid; 查询用户相关的各种统计信息. select a.sid,a.statistic#,b.name,a.valuefrom v$sesstat a,v$statn...原创 2009-07-23 17:56:14 · 73 阅读 · 0 评论 -
学习动态性能表5-V$SESSION
在本视图中,每一个连接到数据库实例中的session都拥有一条记录。包括用户session及后台进程如DBWR,LGWR,arcchiver等等。V$SESSION中的常用列 V$SESSION是基础信息视图,用于找寻用户SID或SADDR。不过,它也有一些列会动态的变化,可用于检查用户。如例:SQL_HASH_VALUE,SQL_ADDRESS:这两列用于鉴别默认被session执行的SQL...原创 2009-07-23 17:55:23 · 72 阅读 · 0 评论 -
学习动态性能表第四篇-(2)-V$SQLAREA
本视图持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列。本视图在分析SQL语句资源使用方面非常重要。 V$SQLAREA中的信息列HASH_VALUE:SQL语句的Hash值。ADDRESS:SQL语句在SGA中的地址。这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash值相同。这时候,必须连同ADDRESS一同使用来确...原创 2009-07-23 17:54:48 · 82 阅读 · 0 评论 -
学习动态性能表第四篇-(1)-V$SQLTEXT
本视图包括Shared pool中SQL语句的完整文本,一条SQL语句可能分成多个块被保存于多个记录内。 注:V$SQLAREA只包括头1000个字符。 V$SQLTEXT中的常用列HASH_VALUE:SQL语句的Hash值ADDRESS:sql语句在SGA中的地址SQL_TEXT:SQL文本。PIECE:SQL语句块的序号V$SQLTEXT中的连接列Column View Joi...原创 2009-07-23 17:53:58 · 86 阅读 · 0 评论 -
学习动态性能表(三)-(2)-V$SQL_PLAN
本视图提供了一种方式检查那些执行过的并且仍在缓存中的cursor的执行计划。 通常,本视图提供的信息与打印出的EXPLAIN PLAN非常相似,不过,EXPLAIN PLAN显示的是理论上的计划,并不一定在执行的时候就会被使用,但V$SQL_PLAN中包括的是实际被使用的计划。获自EXPLAIN PLAN语句的执行计划跟具体执行的计划可以不同,因为cursor可能被不同的session参数值编译...原创 2009-07-23 17:53:16 · 68 阅读 · 0 评论 -
学习动态性能表 第三篇-(1)-v$sql
V$SQL中存储具体的SQL语句。 一条语句可以映射多个cursor,因为对象所指的cursor可以有不同用户(如例1)。如果有多个cursor(子游标)存在,在V$SQLAREA为所有cursor提供集合信息。例1:这里介绍以下child cursor user A: select * from tbl user B: select * from tbl 大家认为这两条语句是不是一样的啊,...原创 2009-07-23 17:52:05 · 95 阅读 · 0 评论 -
浅谈Oracle中的三种Join方法
基本概念Nested loop join:Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环。 Sort merge join:将两个表排序,然后再进行join。 Hash join:将两个表中较小的一个在内存中构造一个Hash 表(对Join Key),扫描另一个表,同样对Join Key进行Hash后探测是否可以join,找...原创 2009-07-27 00:23:22 · 148 阅读 · 0 评论 -
Oracle数据库中主要配置文件的经典解析
Oracle 主要配置文件: profile文件,oratab 文件,数据库实例初始化文件 initSID.ora,监听配置文件, sqlnet.ora 文件,tnsnames.ora 文件 1.2 Oracle 主要配置文件介绍 1.2.1 /etc/profile 文件 系统级的环境变量一般在/etc/profile 文件中定义 在 CAM...原创 2009-08-03 11:29:27 · 293 阅读 · 0 评论 -
listener.ora、sqlnet.ora、tnsnames.ora 作用
oracle网络配置三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME\network\admin目录下。1. sqlnet.ora-----作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串。例如我们客户端输入sqlplus sys/oracle@orc...原创 2009-08-03 13:36:23 · 142 阅读 · 0 评论 -
PowerDesigner快捷键
一般快捷键F4 打开检查模型窗口,检查模型F5 如果图窗口内的图改变过大小,恢复为原有大小即正常大小F6 放大图窗口内的图F7 缩小图窗口内的图F8 在图窗口内中查看全部图内容F9 预览图窗口F10 在图窗口中以一幅视图的高度显示图Shift+单击对象 连续选择对象alt+0 显示或隐藏浏览器窗口alt+1 显示或隐藏输出窗口alt+2 显示或隐藏结果列表...原创 2011-03-19 00:10:30 · 91 阅读 · 0 评论 -
Linux下用OCCI或OCI连接Oracle
首先,去oracle官网下载C语言的库文件和头文件网址如下,选择对应的Instant Client版本(我下载的都是zip包,没有下载rpm包,rpm包应该安装的时候就把那些东西配置好了):(个人建议下zip包,自己打动手玩,能加强理解)http://www.oracle.com/technology/software/tech/oci/instantclient/index.html下面是lin...原创 2011-07-26 12:00:52 · 355 阅读 · 0 评论 -
Parse CPU to Parse Elapsd%的理解
Parse CPU to Parse Elapsd%是指sql语句的CPU时间与总体解析时间的比率, SQL总体解析时间包括CPU时间和wait时间,这个比率过低说明SQL Parse的wait时间远远大于CPU的 Parse时间不是很正常,可能有大量lib cache latch or shared pool latch。 有时候Parse CPU to Parse Elapsd%会超...原创 2010-11-28 18:37:36 · 424 阅读 · 0 评论 -
Oracle迁移到DB2常用转换
因为项目需要,要将Oracle上的东西转移到DB2,于是收集整理了一些需要修改点的注意事项,拿出来大家分享。 ORACLE和DB2实现相同功能的实例(主要以Oracle8I和DB2 7.X为例,已测试)取前N条记录OracleSelect * from TableName where rownum <= N;DB2...原创 2010-07-01 13:12:54 · 112 阅读 · 0 评论 -
oracle和sql server功能对比
Oracle Database 10g对比SQL Server 2005的竞争优势 微软于2005.11.7正式发布SQL Server 2005。通过对比Oracle Database 10g和 SQL Server 2005功能和性能,我们给出Oracle Database 10g的竞争优势。 1. 功能优势在微软发布的...原创 2011-01-05 22:05:27 · 157 阅读 · 0 评论 -
输出object的DDL的方法
最近一段时间,由于经常要通过ssh访问远程环境。所以图形工具使用不了了(以前toad,enterprise manager console就可以轻松搞定 ),而一些troubleshooting 又要求得到一些object的DDL进行分析。一些心得分享给大家(仅在9.2XX验证过)。当然可能有一些疏漏的地方,请xdjm指点:)一、1.1 运用DBMS_METADATA.GET_DDL来实现的方...原创 2010-06-23 01:07:11 · 144 阅读 · 0 评论 -
oracle的license和正版使用问题
1, 正版Oracle 产品和盗版的区别 直奔主题,这是许多研发不注意的地方。对于商用(就是你不是在家里,自己玩),严格来说,就是一张许可证纸的区别。不管是什么时候,下载的版本都可以建立数据库并正常开发,但是如果用于商业,就属于违法行为,后果我不必说了。至于昂贵的价格,其实很大部分是维护费用, 另外下载版是不可以打补丁的(并不是说打不上,而是你没有账号去下载,另外任何对下载免费版打补丁的行为都是非...原创 2010-06-08 01:08:37 · 797 阅读 · 0 评论 -
oracle opatch 工具的使用(oracle小补丁安装)(转)
从9.2版开始,Oracle公司设计实现了个别补丁安装管理工具opatch.opatch使用一个称为inventory的系统数据结构(严格说是与oui共享inventory),集中管理所有已安装的个别补丁;个别补丁的安装和卸载都使用opatch命令完成,冲突检测也由opatch在安装时自动完成;提供列表命令可以很方便得到已安装个别补丁的信息。 10g(10.1和10.2)版本...原创 2010-05-30 13:49:02 · 142 阅读 · 0 评论 -
Oracle MTS相关问题
Oracle MTS的相关问题一、什么是MTSMTS = Multi-Threaded ServerMTS是ORACLE SERVER的一个可选的配置选择,是相对DEDICATE方式而言,它最大的优点是在以不用增加物理资源(内存)的前提下支持更多的并发的连接。Joseph C.Johnson以餐馆给出一个MTS的形象的比喻 假设ORACLE是一家餐馆,当你走进一家餐馆时你感觉...原创 2009-09-09 22:34:58 · 169 阅读 · 0 评论 -
10g: SYSAUX 里面都有些什么东西
Isabella says:SYSAUX 暴涨有什么东西在调控,需要关掉的么?ora-600 says:ash会自动收集信息,数据库越繁忙,收集的信息占用的空间越大Isabella says:然后呢?没有自动清掉?能不能手动清理ora-600 says:默认保留大概7天的统计信息,印象中是空间会循环使用Isabella says:我去找文档Isabella says:什么破玩意。500 M 都不够...原创 2009-09-04 12:38:34 · 190 阅读 · 0 评论 -
ORACLE的PL/SQL一
一、什么是PL/SQL? PL/SQL(Procedural Language/SQL)是对SQL的扩充,它吸收了近年来编程语言的许多最高设计特点:如数据封装性、信息隐蔽性、重载和例外处理等。它允许SQL的数据操纵语言和查询语句包含在块结构(block_structured)和代码过程语言中,使PL/SQL成为一个功能强大的事务处理语言。 PL/SQL的优点如下: 1.块结构(B...原创 2009-08-26 17:03:21 · 146 阅读 · 0 评论 -
Oracle中password file的作用及说明
在数据库没有启动之前,数据库内建用户是无法通过数据库来验证身份的口令文件中存放sysdba/sysoper用户的用户名及口令允许用户通过口令文件验证,在数据库未启动之前登陆从而启动数据库如果没有口令文件,在数据库未启动之前就只能通过操作系统认证.使用Rman,很多时候需要在nomount,mount等状态对数据库进行处理所以通常要求sysdba权限如果属于本地DBA组,可以通过操作系统认证登陆如果...原创 2009-08-21 21:19:59 · 118 阅读 · 0 评论 -
数据库设计中的十四个技巧
许多人在大量的数据库分析与设计实践中,逐步总结出来14个技巧。对于这些经验的运用,读者不能生搬硬套,死记硬背,而要消化理解,实事求是,灵活掌握。并逐步做到:在应用中发展,在发展中应用。1、原始单据与实体之间的关系可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系,即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体或多张...原创 2009-08-20 16:47:57 · 98 阅读 · 0 评论 -
DB2客户端连接服务端的方法(转载)
在DB2中从客户端访问服务器端的数据库时,不能直接用connect命令,而必须先建立通信node,再在node的基础上建立数据库连接。在命令行的具体操作如下:->db2 catalog tcpip node ABC remote serverName server 50000 ->db2 catalog db databaseName at node ABC ->db2 co...原创 2010-07-14 22:40:15 · 115 阅读 · 0 评论 -
四大数据库的比较(SQL Server、Oracle、Sybase和DB2)
本篇引用于公司数据库高手的文章。纯属个人意见。 开放性: SQL Server 只能在windows上运行,没有丝毫的开放性,操作系统的系统的稳定对数据库是十分重要的。Windows9X系列产品是偏重于桌面应用,NT server只适合中小型企业。而且windows平台的可靠性,安全性和伸缩性是非常有限的。它不象unix那样久经考验,尤其是在处理大数据 Oracle 能在所有主流...原创 2010-07-14 21:54:16 · 184 阅读 · 0 评论 -
Oracle触发器详细介绍
触发器 是特定事件出现的时候,自动执行的代码块。类似于存储过程,但是用户不能直接调用他们。 功能: 1、 允许/限制对表的修改 2、 自动生成派生列,比如自增字段 3、 强制数据一致性 4、 提供审计和日志记录 5、 防止无效的事务处理 6、 启用复杂的业务逻辑 开始 ...原创 2009-08-17 17:12:33 · 94 阅读 · 0 评论 -
学习动态性能表(二)--v$sesstat
类似于v$sysstat,该视图存储下列类别的统计: 事件发生次数的统计,如用户提交数。数据产生,存取或者操作的total列(如:redo size)执行操作所花费的时间累积,例如session CPU占用(如果TIMED_STATISTICS值为true)注意:如果初始参数STATISTICS_LEVEL被设置为TYPICAL或ALL,时间统计被数据库自动收集如果STATISTICS_L...原创 2009-07-23 17:51:24 · 100 阅读 · 0 评论 -
学习动态性能表(一)--v$sysstat
按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sesstat,该视图存储下列的统计信息:1>.事件发生次数的统计(如:user commits)2>.数据产生,存取或者操作的total列(如:redo size)3>.如果TIMED_STA...原创 2009-07-23 17:50:36 · 76 阅读 · 0 评论 -
在ORACLE数据库中实现从非归档模式到归档模式的转化
一、查看数据库运行模式 可以用超级用户(INTERNAL)在SQLPLUS中使用命令ARCHIVE LOG LIST查看 SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination /eXPort/home/Ora...原创 2009-07-12 21:41:59 · 126 阅读 · 0 评论 -
三架马车保障Oracle网络的连通性
Oracle数据库是网络数据库的典型代表。用户可以通过网络来访问Oracle数据库。Oracle数据库提供了网络互联的各种方案,包括结构和驱动程序,其网络通信协议结构类似于OSI-RM,但又有自己的分层机制。也就是说,Oracle的网络是基于计算机网络的,通过网络使Oracle实现了数据共享、数据完整性控制、数据安全传输、跨操作系统平台(可以同时运行在Linux或者微软的操作系统平台上)、在多硬...原创 2009-07-11 18:38:42 · 132 阅读 · 0 评论