- 博客(33)
- 收藏
- 关注
原创 PL/SQL 0.几秒出结果,SQL效率一定高吗?
今天开发问我一个问题,PL/SQL很快出结果了,为什么应用还是很慢create index F_AGT_SAVB_ACCTINFO_H_idx4 on F_AGT_SAVB_ACCTINFO_H(agmt_id,last_trans_date,acct_bal,start_dt,end_dt,acct_status);SQL> select agmt_id, max(last_tra
2014-04-30 11:23:32 783
原创 优化大型复杂SQL
with aa as (select a.agmt_id, sum(c.acct_bal) as card_bal, --借记卡期末存款余额 a.card_open_org, a.OPEN_DATE, -- 发卡日期 a.CARD_NEW_STATUS, -- 卡片状态
2014-04-30 10:30:42 773
原创 再次遇到谓词推入
explain plan for with aa as (select a.agmt_id, sum(c.acct_bal) as card_bal, --借记卡期末存款余额 a.card_open_org, a.OPEN_DATE, -- 发卡日期 a.CARD_NEW_STATUS, --
2014-04-28 16:08:19 1368 3
原创 虚拟机有分区的情况下,扩磁盘
[root@ywcrmdb ~]# fdisk -lDisk /dev/sda: 751.6 GB, 751619276800 bytes255 heads, 63 sectors/track, 91379 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physic
2014-04-28 11:34:16 1060
原创 rm: cannot remove `/home/cn0000/log/formlog.20140417': Read-only file system
[root@localhost home]# su - cn0000rm: cannot remove `/home/cn0000/log/monitor_xmllog.20140417': Read-only file systemrm: cannot remove `/home/cn0000/log/sysctrl_seclog.20140417': Read-only file sy
2014-04-25 10:17:29 1885
原创 sybase 备份和恢复
use mastergodump transaction MBFEWKDB with no_loggodump transaction MBFEHISDB with no_loggouse mastergodump database MBFEWKDB to 'MBFEWKDB.bak'gouse mastergodump database MBFEHISDB to
2014-04-25 09:42:14 675
原创 全表扫描计算成本
SQL> select * from v$version where rownum=1;BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Produc
2014-04-23 22:49:19 793
原创 标量子查询 子查询执行次数计算公式
select a.username,(select count(*) from all_objects b where b.owner=a.username) cnt from all_users a;create table a as select * from all_users;create table b as select * from all_objects;select
2014-04-22 11:21:30 1143
原创 left join 关联条件位置
select e.last_name, e.department_id, d.department_name from hr.employees e left outer join hr.departments d on (e.department_id = d.department_id); select e.last_name, e.department_id, d.dep
2014-04-22 09:02:39 757
原创 动态SQL使用绑定变量
SQL> begin for i in 1..1000000 loop execute immediate 'insert into p1 values(i)' ; commit; end loop;end; 2 3 4 5 6 7 8 /begin*ERROR at line 1:ORA-00
2014-04-21 20:32:27 656
原创 Linux 安装字体
把XP下的字体C:\WINDOWS\FONTS\simsun.ttc(也就是宋体,大小为10M),把他重命名为 simsun.ttf 拷贝simsun.ttf 字体到 /usr/share/fonts/zh_CN/TrueType/ 下来 在linux命令行下执行:fc-cache /usr/share/fonts/zh_CN/TrueType/ 字体安装
2014-04-21 16:40:11 572
原创 word 生成目录
生成目录: (1)Ctrl+End,到达文档的最后一页; (2)“插入”菜单——引用——索引和目录(此时出现索引和目录对话框); (3)单击“目录”选项卡 a、在“显示级别”中输入1-3中的任何数字 这个任何数字与你有几级标题有关,如果你设置了标题1、标题2,那么就输入2。 b、单击“修改”——“修改”,设置目录的字体和段落格
2014-04-21 09:51:05 562
原创 Linux sar使用
[root@ywcrmdb ~]# sar -d 1 10Linux 2.6.32-220.el6.x86_64 (ywcrmdb) 2014年04月19日 _x86_64_ (4 CPU)15时14分17秒 DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
2014-04-19 15:18:02 878
原创 yum 使用说明
linux如何安装yum使用YUM来安装软件,就可以不用去到处找依赖关系的RPM了。很方便。第一步:安装yum 第二步:下载createrepo包并安装 下载地址:ftp://195.220.108.108/linux/dag/redhat/el4/en/i386/dag/RPMS/createrepo-0.4.6-1.el4.rf.noarch.rpm
2014-04-18 11:30:11 590
原创 HASH JOIN算法
哈希连接(HASH JOIN)前文提到,嵌套循环只适合输出少量结果集。如果要返回大量结果集(比如返回100W数据),根据嵌套循环算法,被驱动表会扫描100W次,显然这是不对的。看到这里你应该明白为什么有些SQL优化了跑几秒,没优化跑几个小时甚至跑1天都不出结果。返回大量结果集适合走HASH JOIN。HASH JOIN算法非常复杂,这里就不讨论了 下面看一个HASH JOIN的例子(基于
2014-04-16 22:19:22 706
原创 row cache lock
SQL> col name format a30SQL> select * from (select SAMPLE_TIME, SESSION_ID, NAME, P1, P2, P3, ash.BLOCKING_SESSION from v$active_session_history
2014-04-16 10:30:34 733
原创 cursor: pin S
declarev_sql varchar2(200);beginloopv_sql :='select seq1.nextval from dual';execute immediate v_sql;end loop;end;SQL> select * from (select SAMPLE_TIME, SESSION_ID, NAME,
2014-04-16 10:10:36 577
原创 组合索引leaf 数据存储
1 Z2 X3 U4 T5 G6 F7 C8 B9 A1 A2 B3 C4 DOracle的索引是以平衡树的方式组织存储的:保存的是索引列的值,以及该行的rowid的一部分(文件号,块号,行号) 下面我们通过例子来了解一下:1,create table test(id int,name varchar2(20))insert into test values(1
2014-04-13 22:39:32 1444
原创 索引结构
BLEVEL* NUMBER B*-Treelevel: depth of the index from its root block to its leaf blocks. A depth of 0indicates that the root block and leafblock are the same. 索引高度: 从root扫描到分支
2014-04-13 13:50:28 598
原创 Oracle extent
extent 上的块 物理上绝对连续多个连续的block组成一个extent不连续怎么多块读?Oracle 给表分配的单位是extent去做 全表扫描的时候 以块为单位
2014-04-12 19:16:11 926
原创 FILTER 执行次数
select count(*) from SAVJ_ATOMJOURBAK where ((list_flag='1' and prt_flag='0') and acct_no notin (select acct_no from savb_basicinfo1 where ((card_no is not null and base_acct_no is null) or (bo
2014-04-11 20:35:04 762 1
原创 行链接和行迁移
CHAIN_CNT:虽然行链接和行迁移的概念不同,但在ORACLE里其实不太分这个,CHAIN_CNT是总的数量PCTFREE:PCTFREE:为一个块保留的空间百分比,表示数据块在什么情况下可以被insert,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被用于update;即:当使用一个block时,在达到pctfree之前,该block是一直可以被
2014-04-10 21:55:57 499
原创 读UNDO引发的db file sequential read
SQL> select * from (select SESSION_ID, NAME, P1, P2, P3, WAIT_TIME, CURRENT_OBJ#, CURRENT_FILE#, CURRENT_BLOCK# from v$active_session_history
2014-04-10 21:06:39 586
原创 direct path read
11g 全表扫描等待事件为:direct path readSQL> select SESSION_ID, NAME, P1, P2, P3, WAIT_TIME, CURRENT_OBJ#, CURRENT_FILE#, CURRENT_BLOCK# from v$active_
2014-04-10 20:30:17 510
原创 db file scattered read
SQL> set linesize 200SQL> col name format a30SQL> select SESSION_ID,NAME,P1,P2,P3,WAIT_TIME,CURRENT_OBJ#,CURRENT_FILE#,CURRENT_BLOCK# from v$active_session_history ash, v$event_name enm
2014-04-10 15:45:23 486
原创 分区裁剪
explain plan for select /*+leading (T6) use_nl( T1 T6)*/ * from T_PM_ACCT_DTL_AF T1,(SELECT * FROM S_PM_MGR_DEPT_RELA A WHERE DEPT1_CODE <> '999999999
2014-04-10 09:05:24 809
原创 并发update/update引起的buffer busy wait
什么是buffer busy wait? A session that reads or modifies a buffer in the SGA must first acquire the cache buffers chains latch and traverse the buffer chain until it finds the necessary buffer h
2014-04-09 19:48:13 595
原创 基于SQL_ID查看对象大小
SQL> set echo offset echo offset verify offset serveroutput onset feedback offset lines 200set pages 40col segment_name for a20 heading 'OBJECT_NAME'col segment_size for 99999999999999 heading
2014-04-08 09:30:23 549
原创 11g v$session定位客户端IP
11g v$session 新增PORT 字段 用于描述客户端的端口号客户机从10.5.129.180 访问10.5.128.28[oracle@cpool ~]$ netstat -na | grep 10.5.128.28tcp 0 0 10.5.129.180:34981 10.5.128.28:1521 ESTABLI
2014-04-08 09:00:28 832
原创 组合索引和单列索引效率对比
SQL> create table test as select * from dba_objects;Table created.select * from test where object_id=10 and OWNER='SYS';SQL> select count(*) from test where object_id=10; COUNT(*)--------
2014-04-03 11:25:03 847
原创 Oracle 用户权限管理
SQL> select * from ROLE_SYS_PRIVS where ROLE='RESOURCE';ROLE PRIVILEGE ADM------------------------------ ---------------------------------------- ---RESOURCE CREATE SEQUENCE
2014-04-03 10:08:19 542
原创 等待事件--db file sequential read
对于最小化db file sequential read 事件所带来的影响,你可以做的另一件事情是减少AVERAGE_WAIT时间。这是会话必须等待从磁盘提取单块的平均时间,这些信息可以从v$session_event视图中得到。在较新的存储子系统中平均的单块读取事件不应该超过10ms。由于具有大量高速缓存,因此预计在SAN中具有4MS到8MS的平均等待时间。平
2014-04-02 19:45:29 667
原创 并行进程问题
SQL> select * from v$mystat where rownum SIDSTATISTIC# VALUE---------- ---------- ---------- 858 0 0 SQL> select /*+ parallel(t 4)*/ count(*),agmt_id fromF_AGT_COMR
2014-04-01 11:08:35 488
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人