自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

落落的专栏 专注SQL调优 性能调优

Focus on SQL Tuning, Oracle MySQL Performance tuning 想精通SQL以及SQL优化?联系微信692162374

  • 博客(14)
  • 收藏
  • 关注

原创 如何 找出未收集统计信息,以及统计信息过期的表

下面这个查询可以找到从未收集过统计信息或者统计信息过期的表。EXEC DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;SELECT OWNER,TABLE_NAME,OBJECT_TYPE,STALE_STATS,LAST_ANALYZED FROMDBA_TAB_STATISTICS WHERE (STALE_STATS=YES OR

2010-03-29 15:28:00 6307 1

原创 exp,imp问题

今天接了封邮件,项目经理要俺做个数据迁移,将开发环境中的某个表迁移到测试环境。很简单的需求。常用的迁移有 EXP,IMP,DATAPUMP,DBLINK等等。由于无法登陆数据库主机操作系统,所以无法用DATAPUMP。另外也没有创建DBLINK权限,而且数据库中也没有创建好了的DBLINK,这也否定了,我只能用EXP,IMP这种最原始的方法。下面说说导入导出应该注意的事项 一:

2010-03-24 22:30:00 5166 3

原创 Oracle对字符转义的处理

以前总是忘记单引号转义,为了以后工作方便,现在记录下来SQL> select ||nvl(sql_id,prev_sql_id)|| sql_id ,  , ||nvl(sql_child_number,prev_child_number) sql_child_number from v$session where sid=159;SQL_ID          SQL

2010-03-24 14:24:00 2745

原创 SQL 语句中对于like 的调优

SQL> create table test as select * from dba_objects;表已创建。SQL> select owner,object_name from test where owner like ROBINSON%;OWNER                                                        OBJECT_

2010-03-23 14:45:00 9857 4

原创 bitmap index 的研究

  前一篇blog探讨了 bitmap index 的 start rowid,end rowid  是怎么存储的,现在 继续研究 bitmap index SQL> create table test as select * from dba_objects where 1=2;Table createdSQL> insert into test select * f

2010-03-21 23:33:00 3550

原创 ORACLE进制转换函数

oracle中没有16进制转2进制的函数,为了工作方便,自己写了一个create or replace function hex_to_bin(hex varchar2) return varchar2 is  v_hex    varchar2(10000);  v_len    number;  v_var    varchar2(10000);  v_result varchar2(10

2010-03-21 01:28:00 7401

原创 怎么将dump 出来的 bitmap index 中的rowid 还原回 file_id,block_id

今天在研究Bitmap Index internal的东东,不过刚开始就被卡住了,dump出来了bitmap index 根据DSI知道有个叫start rowid,end rowid的东东,却不能将rowid还原回file_id,block_id。现在终于搞懂了呵呵,写出来分享下。哎,前面的路还很长,很长..................SQL> create table test(n

2010-03-19 15:22:00 2772

原创 Hash Join 一定是选择小表作为驱动表吗

今天下午,群里面有人讨论HASH JOIN,选择驱动表的问题,我回答是 选择返回结果集小的表作为驱动表,而有些同志不同意,他们认为Oracle一定会选择小表作为驱动表,为了弄明白我以前是否理解错误,现在实验一把:SQL> create table t1(id number,name varchar2(100));表已创建。SQL> create table t2(id number,job v

2010-03-18 21:54:00 6844 3

原创 创建bitmap index 时对表的加锁方式

前一篇博客研究了 创建B*tree索引时 对表的加锁方式,现在来研究一下创建bitmap时对表的加锁方式。本文基于10gR2测试表基于上一篇博客的test表。文档上面说9i不能以online方式创建bitmap index.SQL> create table lock_obj (username varchar2(100),sid number,lock_type varchar2(100

2010-03-17 16:02:00 2350 1

原创 创建索引(B*tree)时对表的加锁方式

创建一个测试表SQL> create table test as select * from dba_objects;Table created由于test表很小,创建索引时间很短暂,所以我创建一个系统触发器来记录创建索引时在基表上的LOCK,这里我不想对session进行跟踪。创建一个记录表,用来记录创建索引时产生的LOCKSQL> create table lock_obj

2010-03-15 14:40:00 3608

原创 查询某个用户的权限的时候别忘记了PUBLIC权限

      昨天收到封邮件,叫我帮他执行两条SQL语句,非常简单的两条insert 语句。其实我已经不是第一次收到这种类似的请求了。之后我通过OC询问他,问他有没有对表进行insert的权限,在他试过之后 他回答 ”有“。当时俺就郁闷了,为什么不自己动手试一试呢,什么我们DBA去做 ,真是 郁闷啊。      为此我专门写了一个 小脚本,检测某个用户对某个表 的 所有权限,包括系统权限,对象权

2010-03-12 13:36:00 3849

原创 number精度问题

SQL> show numwnumwidth 10SQL> select 1/3*3 from dual;     1/3*3----------         1SQL> select trunc(1/3*3,9) from dual;TRUNC(1/3*3,9)--------------    .999999999SQL> select trunc(1/3*3,10)

2010-03-08 17:30:00 2526 1

原创 DBA记录操作日志也很重要

   有时候,客户会发邮件叫DBA帮他们解决一些问题。此时我们要格外小心,我们应该把对数据库的操作记录下来。   记录的方式很多,我们可以用PL/SQL dev的command window 对数据库进行操作,然后copy操作并保存,也可以使用toad   本人更喜欢用sqlplus,当客户提出需求后,利用下面的设置,将我对数据库的操作记录保存下来,这样以后遇到纠纷,就有证据了se

2010-03-08 16:02:00 3013

原创 检测表是否需要shrink,Segment advisor

  exec  DBMS_STATS.FLUSH_DATABASE_MONITORING_INFO;     select a.owner || . || a.table_name "Table",a.num_rows,a.avg_row_len,b.inserts,b.deletes,a.num_rows+nvl(b.inserts,0)-nvl(b.deletes,0) total_row

2010-03-08 11:44:00 4687

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除