补充:v$sql,v$sqlarea,v$sqltext有什么区别
http://inthirties.com:90/thread-1202-1-1.html
前面文章 ”v$sql,v$sqlarea,v$sqltext有什么区别“ 见 http://blog.csdn.net/inthirties/archive/2010/03/10/5364777.aspx
这里补充一下
补充:
1、查一下这些视图的定义你就能理解,它们的源都是一个。
SELECT view_definition from v$fixed_view_definition WHERE view_name='GV$SQL';
SELECT view_definition from v$fixed_view_definition WHERE view_name='GV$SQL_AREA';
2、实际上最模糊的是v$sql与v$sqlarea,区别与联系除biti说的还有:
a、v$sql_area相当于是按INST_ID, KGLNAOBJ, KGLHDPAR, KGLNAHSH, KGLNATIM,
GLOBTS0,GLOBT19, KGLOBTS1, KGLOBT20,DECODE(KGLOBT33, 1, 'Y',
'N'),KGLHDCLT这些列的自v$sql的group
by,也就是说v$sql的每一行表示的是每一个sql语句的一个versiion,而v$sqlarea存放的是相同语句不同version一个汇总。
b、 v$sql与v$sqlarea的源都是一个:X$KGLCURSOR
c、实际调优中建议使用v$sql,相对来说比v$sqlarea快,而且还不会产生share pool latch的争用。
3、因v$sql及v$sqlarea存放着统计信息在调优时使用居多,但其sql是不全的,如果想获得完整的sql就要用v$sqltext了。
提供Oracle管理/故障处理/优化/安装/RAC/备份恢复技术服务,提供专业的Oracle培训和咨询服务。
邮件: inthirties@gmail.com
MSN: inthirties@hotmail.com
QQ: inthirties@qq.com
专业论坛 http://www.inthirties.com
技术博客 http://blog.csdn.net/inthirties
个人站点 http://blog.inthirties.com
相关文档:
JOIN优化
MySQL中join的实现采用的是Nested Loop Join算法。通过驱动表的结果集作为循环基础数据,然后将该结果集中的数据作为过滤
条件一条条的到下一个表中查询数据,最后合并结果,如果存在后续表,过程也如此。
尽量减少join语句中nested loop循环的次数。最有效的方法是让驱动表的结果集尽可能的小
优先优化nested ......
(1) 选择最有效率的表名顺序
(
只在基于规则的优化器中有效
)
:
ORACLE 的解析器按照从右到左的顺序处理
from
子句
中的表名,
from
子句中写在最后的表
(
基础表
driving table)
将被最先处理,在
from
子句中包含多个表的情况下
,
你必须选
择记录条数最少的表作为基础表 ......
1.如何将一个SQL Server表的结构复制到另一个新建的表中
select * into 新表 from 旧表 where 0 = 1
2.修改字段默认值
alter table 表名 add default 默认值 for 字段名
3. 取得数据库结构
SELECT name from sysdatabases
4.增加列
......
SQL Server 已封鎖元件 'xp_cmdshell' 的 程序 'sys.xp_cmdshell'
之存取,因為此元件已經由此伺服器的安全性組態關閉。系統管理員可以使用 sp_configure 來啟用 'xp_cmdshell'
的使用。如需有關啟用 'xp_cmdshell' 的詳಄ ......