DB
blackchoc
a guy who is not smart, nolonger young, begin way of java and the way of programing
展开
-
select ... for update, select ... for update nowait
今天测试了一下select ... for update 和 select ... for update nowait 的区别 首先一点,如果只是select 的话,Oracle是不会加任何锁的,也就是Oracle对 select 读到的数据不会有任何限制,虽然这时候有可能另外一个进程正在修改表中的数据,并且修改的结果可能影响到你目前select语句的结果,但是因为没有锁,所以sel原创 2010-03-14 10:58:00 · 1597 阅读 · 0 评论 -
数据库优化
<br />最近不是很忙,总结了一下数据库优化调优的一些技巧和注意事项。<br />算是阶段性的成果吧。<br />在这里感谢俺们dba和其它同事。。。。。。<br /> <br />另外一个pdf也是优化技巧,我参考了里面的例子。<br /> <br />http://blogimg.chinaunix.net/blog/upfile2/100603224334.pdf原创 2010-06-03 22:48:00 · 458 阅读 · 0 评论 -
Oracle SQL执行步骤
一、sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。4)表达式转换, 将复杂的 SQL 表达式转换为较简单的等效连接表达式。 5)选择优化器,不同的优化器一般产生不同的“执行计划”6)选择连接方式, ORACLE 有三种连接方式,对多表连接 ORACLE 可选择适当的连接方式。7)选择连接顺序, 对多表连接 ORACLE 选择哪转载 2010-06-02 00:45:00 · 662 阅读 · 0 评论 -
Oracle时间类型数据为0的bug
应用数据库中记录中date列莫名其妙的出现了几个值为0000-00-00的数据。更可怕的是如果将这样的记录进行读取成为varchar2后再to_date转换回去就会报错。问题无从查起,只说一下最终同事搜索到的连接结果:http://www.hellodba.com/Doc/oracle_date_zero_bug.htm看来的确是oracle的一个bug。 另外需要注意的是,在原创 2010-05-18 10:32:00 · 729 阅读 · 0 评论 -
相关子查询
子查询:嵌套在其他查询中的查询称之。 子查询又称内部,而包含子查询的语句称之外部查询(又称主查询)。 所有的子查询可以分为两类,即相关子查询和非相关子查询 1. 非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。 2. 相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。 故非相关子查询比相关子查询效率高 ms对于相关子查询的解转载 2010-05-13 13:50:00 · 3162 阅读 · 0 评论 -
OLAP和OLTP的区别
联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的,他同时提出了关于OLAP的12条准则。OLAP的提出引起了很大的反响,OLAP作为一类产品同联机事务处理 (OLTP) 明显区分开来。 当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Ana转载 2010-05-11 17:01:00 · 785 阅读 · 0 评论 -
修改数据库字符集
如果从iso 或者bgk字符集转到utf字符集没有啥问题,但是如果反过来,在进行转换的时候就会报不能从超级转到子集的错误。相应的命令如下:connect system/oracle9i as sysdbashutdown immediatestartup mount alter system enable restricted session;alter system set AQ_TM_PROCESSES=0; alter database open;alter datab原创 2010-07-04 19:20:00 · 664 阅读 · 0 评论 -
oracle RAC同步频率设置
max_commit_propagation_delay默认值为700,即7秒(单位0.01s,http://www.orafaq.com/parms/parm1217.htm)。 这个参数应该配置的是RAC(Real Application Cluster)之间同步数据的频率。修改这个参数的好处就不用说了(本人深受其苦啊),但是如果走另一个极端,可能会给数据库造成更大的压力原创 2010-05-06 18:51:00 · 1166 阅读 · 0 评论 -
数据库的垂直划分和水平划分
垂直划分 按照功能划分,把数据分别放到不同的数据库和服务器。 当 一个网站开始刚刚创建时,可能只是考虑一天只有几十或者几百个人访问,数据库可能就个db,所有表都放一起,一台普通的服务器可能就够了,而且开发人员也 非常高兴,而且信心十足,因为所有的表都在一个库中,这样查询语句就可以随便关联了,多美的一件事情。但是随着访问压力的增加转载 2010-04-25 21:12:00 · 1956 阅读 · 0 评论 -
PowerDesigner中增加唯一约束和索引
PowerDesigner增加unique约束,总忘所以写下来以备后用增加唯一索引:在TableProperties对话框的Indexs页中,增加index,在自定义的index的属性中选中“unique”并且在Cloumn页中增加需要设定unique约束的cloumn即可。增加唯一约束:加入方法与加主键相同,只是不用选定成主值.具转载 2010-04-27 17:43:00 · 10908 阅读 · 0 评论 -
minus 排序
上周的sql遭遇了排序速度慢的问题。15w左右的数据进行了一次order by的排序,由于数据量巨大因此速度比较慢。后来dba在帮我优化的时候,发现我的sql为了处理权限问题,使用了minus,从而造成了2次内部排序,使得整体IO量一下子就上去了。 minus操作的时候会进行一次 sort unique的排序(效果和distinct相同,union也会有unique的排序,但是不太一样原创 2010-03-31 21:58:00 · 1294 阅读 · 0 评论 -
一些概念
物理读(physical read)当数据块第一次读取到,就会缓存到buffer cache 中,而第二次读取和修改该数据块时就在内存buffer cache 了 数据块被重新读入buffer cache ,这种发生在如果有新的数据需要被读入Buffer Cache中,而Buffer Cache又没有足够的空闲空间,Oracle就根据LRU算法将LRU链表中LRU端的数据置换出去。当这些数据被再次原创 2010-03-29 11:29:00 · 468 阅读 · 0 评论 -
plsql developer 使用技巧
乱码问题客户端字符集和数据库端不一致造成的。 如果是windows的话修改nls_lang,改为数据库端字符集 执行单条SQL语句 在使用PL/SQL Developer的SQL Window时,按F8键,PL/SQL Developer默认是执行该窗口的所有SQL语句,需要设置为鼠标所在的那条SQL语句,即执行当前SQL语句;设置方法:PL/SQL De原创 2010-03-29 11:30:00 · 589 阅读 · 0 评论 -
exist 和 in 的使用
首先需要说明一下的是,以下的文字基本上都是google来的,只是经过了我的整理而已。更加适合自己的胃口理解 关于exist对我来说有必要专门记一下,因为以前不是很熟悉select * from 表A where exists(select * from 表B where 表B.id=表A.id)这句相当于select * from 表A where id in (select id f原创 2010-03-29 11:16:00 · 1304 阅读 · 0 评论 -
Oracle hint方式强制使用索引
在测试性能的时候经常需要用到希望看看走索引和不走索引哪个速度更快。因为全表扫描的速度并不一定比扫描索引的速度慢。在oracle8之后(或者是7具体既不清楚了,至少目前的9,10都有,开始就可以采用hint方式强行oracle走索引) example: select /*+ index(t i_t) */ * from t where username=EYGLE;转载 2010-03-27 09:18:00 · 8725 阅读 · 0 评论 -
oracle修改管理http页面端口
<br />1.从oracle安装菜单中选择“运行 sql 命令行”。<br />connect [system] --用户名(conn "sys"/"a" as sysdba)<br /> <br />2.连接至数据库,并调用 dbms_xdb.sethttpport 修改端口号(例图中修改默认的 8080 为 8088)<br />sql> exec dbms_xdb.sethttpport(8088);原创 2010-06-16 10:17:00 · 1844 阅读 · 0 评论