little notes之SHARED_POOL SQL解析
TOM大叔的调优书中说过一句话,具体英文就忘了,大概意思就是:如果有人让我写本怎样让ORACLE性能最慢的书的话我会将取消绑定变量(bind variable)做为书的第一章和最后一章(他的意思是他很有幽默~~!),可见绑定变量的重要性。
绑定变量大多用在OLTP(online transaction process)中,在OLAP(online analizy process)中就没必要用BIND VARIABLE了。
要了解绑定变量的作用首先得了解下SHARED_POOL library cache中的SQL解析。
SQL解析分为硬解析(hard parse)跟软解析(soft parse)。所谓硬解析就是真正的将产生的SQL用自己内部的算法完全解析一遍并将解析后的结果存入库缓存(library cache),而软解析就是发现库缓存中已经存在解析过的该SQL语句,从而直接利用,跳过重新解析的步骤。
所以SQL解析的步骤就是:先判断库缓存中是否存在该sql的解析,存在就不用再解析(软解析),没有就解析一遍(硬解析),并存入库缓存。
下面做个实验:
SQL语言:
SQL> select * from v$sysstat where statistic#=331;
STATISTIC# NAME CLASS VALUE STAT_ID
---------- -------------------- ---------- ---------- ----------
331 parse count (hard) 64 276 143509059
SQL> select * from v$sysstat where statistic#=331;
STATISTIC# NAME CLASS VALUE STAT_ID
---------- -------------------- ---------- ---------- ----------
331 parse count (hard) 64 276 143509059
--这里value记录的就是硬解析次数,上面这个select语句同样第一次会被解析,之后就软解析了。
SQL> select * from v$sysstat where statistic#=331;
STATISTIC# NAME &nb
相关文档:
Microsoft SQL server2000由一系列相互协作的组件构成。能满足最大的WEB站点和企业数据处理系统存储和分析数据的需要。本文带来的就是在windows环境下SQL2000的安装过程。
系统需求
这里以其四合一版本为例,以下安装过程同理。Microsoft SQL Server 2000 可在运行 Intel或兼容的 Pentium、Pentium Pr ......
sql导出到Excel
从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:
/*===================================================================*/
--如果接受数据导入的表已经存在
insert into 表 select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1 ......
首先,我们看看exists和in的效率问题,这里我只说明一种测试语句
set statistics io on
sqlstatement
set statistics io off、
或者
set statistics time on
sqlstatement
set statistics time off
从studio里面的消息可以看出问题,我引用网上的一些准则http://www.cnblogs.com/diction/arch ......