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
相关文档:
系统环境:Windows 7
软件环境:Visual C++ 2008 SP1 +SQL Server 2005
本次目的:编写一个航空管理系统
这是数据库课程设计的成果,虽然成绩不佳,但是作为我用VC++ 以来编写的最大程序还是传到网上,以供参考。用VC++ 做数据库设计并不容易,但也不是不可能。以下是我的程序界面,后面 ......
自从SQL Server 2005推出后,因为有了更好的性能,所以有很多与SQL Server 2000相关的应用程序需要升级到这个版本。但如何才能以最快最方便的方式把其中的表结构及对应的数据和数据的其它的格式导入到SQL Server 2005呢?SQL Server 2005的数据又如何导入到SQL Server 2000上?我们分别来看下面实现的方式:
1) SQL ......
sql 两表关联 更新
update set from 语句格式
Sybase和SQL SERVER:UPDATE...SET...from...WHERE...的语法,实际上从源表获取更新数据。
在 SQL 中:
Update A SET A.dept =B.name
from A LEFT JOIN B ON B.ID=A.dept_ID ......
Microsoft SQL server2000由一系列相互协作的组件构成。能满足最大的WEB站点和企业数据处理系统存储和分析数据的需要。本文带来的就是在windows环境下SQL2000的安装过程。
系统需求
这里以其四合一版本为例,以下安装过程同理。Microsoft SQL Server 2000 可在运行 Intel或兼容的 Pentium、Pentium Pr ......