首页 | 摘要显示 | 上一页 1 2 3 4 下一页

AnySQL Archives

September 20, 2006

AnySQL中的特色功能介绍(四)

    在Oracle的调优中, 查看SQL的执行计划是非常重要和常用的方法, 在AnySQL中提供了几个方便地查看SQL执行计划的方法, 让我们来体验一下.

    第一种情况是获得一个SQL语句的执行计划, 可以用EXPLAIN PLAN命令, 这里的命令稍不同于SQL*Plus中的, 没有"FOR"关键字.

ASQL> EXPLAIN PLAN SELECT * FROM T_HASH;

SQLPLAN                                    COST  CARD KBYTE PS PE
------------------------------------------ ---- ----- ----- -- --
  0     SELECT STATEMENT Optimizer=RULE      20 10000    59      
  1   0   PARTITION HASH (ALL)                              1  8
  2   1     TABLE ACCESS (FULL) OF T_HASH    20 10000    59 1  8

    第二种情况是知道一个SQL的哈希值(Hash Value), 然后从V$SQL_PLAN中的执行计划(正在使用的), 可以使用定制命令"ORA PLAN 哈希值"来完成.

ASQL> ORA PLAN 821132411

SQLPLAN                                   COST  CARD KBYTE PS PE
----------------------------------------- ---- ----- ----- -- --
  0     SELECT STATEMENT Optimizer=RULE     20                  
  1   0   PARTITION HASH (ALL)                             1  8
  2   1     TABLE ACCESS (FULL) OF T_HASH   20 10000    59 1  8

3 rows returned.

    第二种情况是知道一个SQL的哈希值(Hash Value), 然后希望运行EXPLAIN PLAN命令来在当前环境下重新生成执行计划, 可以使用定制命令"ORA XPLAN 哈希值"来完成, 这个命令会首先打印现SQL语句, 然后显示它的执行计划.

ASQL> ORA XPLAN 821132411

SELECT * FROM T_HASH

SQLPLAN                                    COST  CARD KBYTE PS PE
------------------------------------------ ---- ----- ----- -- --
  0     SELECT STATEMENT Optimizer=RULE      20 10000    59      
  1   0   PARTITION HASH (ALL)                              1  8
  2   1     TABLE ACCESS (FULL) OF T_HASH    20 10000    59 1  8

    在STATSPACK或AWR中一般不会显示完整的SQL语句, 但肯定会告诉你一个哈希值, 这时你就可以方便地使用这些命令来进行调优了, 当然这些命令只是提供一些方便而已.

September 21, 2006

AnySQL中的特色功能介绍(五) -- 更新插入LONG/LOB

    在AnySQL中可以比较方便地操作LONG/LONG RAW类型, 将客户端文件插入或更新到这些字段中, 这是SQL*Plus没有办法做到的.

    首建来建一个包括一个LONG字段的测试表, 如下所示:

ASQL> DESC T_LONG

NO# NAME             NULLABLE TYPE
--- ---------------- -------- ----
  1 COL1                      LONG

    接下来我们来插入一个Shell文件到一条新的记录中, 你也可以用Update语句来更新一个LONG/LONG RAW字段, 只需要声明一个CLOB(更新LONG)或BLOB(更新LONG RAW)类型的AnySQL宿主变量(Host Vairable), 并赋给一个文件名作为值, 在Insert/Update语句中直接引用就可以了, 如下所示:

ASQL> VAR P_LONG CLOB
ASQL> define p_long=otop
ASQL> insert into t_long values (:p_long);

1 rows affected.

ASQL> commit;

    然后在AnySQL直接SELECT查看内容就可以了, 可以最多显示64KB的内容:

阅读全文

September 30, 2006

AnySQL中的特色功能介绍(六)

    很多时侯我们需要进行行列转换进行显示, 如下面的例子所示, 要查所有用户下的表和索引的个数时, 下面的输出是不是更容易看懂呢?

ASQL> CROSS SELECT OWNER,OBJECT_TYPE,COUNT(*)
    2 FROM DBA_OBJECTS
    3 WHERE OBJECT_TYPE IN ('TABLE','INDEX')
    4 GROUP BY OWNER,OBJECT_TYPE;

OWNER        INDEX TABLE
------------ ----- -----
TSMSYS           1     1
ANYSQL                 1
SYS            695   678
OUTLN            3     3
SYSTEM         179   141
XDB             51    36
FLOWS_FILES      4     1
DBSNMP          10    21
HR              19     8
FLOWS_020100   364   164
MDSYS           39    37
CTXSYS          46    37

12 rows returned.

    当数据库中遇到块坏时, 首先要确定这个坏块是属于那个对象的, 在AnySQL中可以用定制命令"ORA BLOCK 文件号 块号"来进行查询.

ASQL> ora block 1 9

OWNER NAME   PARTITION TYPE     TABLESPACE
----- ------ --------- -------- ----------
SYS   SYSTEM           ROLLBACK SYSTEM    

1 rows returned.

    数据库中的主键和外键表明了一种表之间的父子联系, 如何在命令行查这层关系呢? 在AnySQL中的"SHOW PARENT/CHILD"命令可以告诉你结果.

阅读全文

October 8, 2006

最近收到的关于AnySQL软件的两封邮件

    在10月4号收到的邮件, 关于在AnySQL中如何操作BLOB/CLOB类型的问题, 看来我得写写关于AnySQL工具的英文文档了.

To whom it may concern,

I'm really interested in using anysql for generating blob to a file, but I figured out that there is no howto in using it. Would it be possible if you explain it and write it in your blog.

Thanks in advance,

    上面的邮件我是在10月5号看的, 却发现了另一封邮件, 说他已经搞明白如何操作BLOB/CLOB类型, 于是我又不急着写英文文档了.

Thank you so much but I've been able to find my way out to use anysql. I will try using lobs later as anysql is good enough for now. Thanks for making such a great tool.

    这些老外的功夫就是好, 没有文档也能搞懂! 中文的我已经写了.

November 8, 2006

AnySQL中的特色功能介绍(七) -- 查询LONG/LOB列

    常看到有人问如何查看LOB或LONG类型的字段中的内容, 在SQL*Plus中是不容易的, 在AnySQL小工具中, 我设计了LOB和LOBEXP命令来对这些数据类型进行查询操作, 这些命令都将LONG/LOB字段中的内容检索到客户端的机器(非服务器端).

    LOB命令语法, 这里面query应当只返回一行及一列(LONG或LOB类型).

Usage:
  LOB query >> file
Note :
  >> mean export long/long raw/blob/clob to a file

    LOBEXP命令语法, 这里面query应当只返回两列, 第一列为文件名, 第二列为LONG或LOB字段.

Usage:
  LOBIMP query
Note :
  Query should return tow column as following:
  col1 : CHAR or VARCHAR specify the filename.
  col2 : blob/clob field.

    下面来看一下例子中用到的表:

阅读全文

上一页 1 2 3 4 下一页

当前分类: AnySQL

Creative Commons License
本站版权: 共用创作 CC
署名-非商业性-相同方式分享
本站基于MT-3.36免费版
(©)版权所有, 2004 - 2008, www.AnySQL.net, 保留所有权利.
MSN: loufangxin(a)msn.com, Mail: anysql(at)126.com/support(at)iamdba.com, Skype ID:anysql