sqlserver存储过程中使用变量表,临时表的分析_第1页
sqlserver存储过程中使用变量表,临时表的分析_第2页
sqlserver存储过程中使用变量表,临时表的分析_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、sqlserver存储过程中使用变量表,临时表的分析最近,我有一朋友,对我说他的数据库中的很多存储过程执行都是超时让我替他看看是什么原因我一看,原来他的存储过程中用了很多的临时表与变量表.于是我跟他说过犹不及.在存储过程中使用临时表或变量表使用的好可以提高速度,使用的不好,可能会起到反作用然后给了他几个示例让他自己去看,然后针对自己的数据库进行修改.那么表变量一定是在内存中的吗?不一定.通常情况下,表变量中的数据比较少的时候表变量是存在于内存中的。但当表变量保留的数据较多时,内存中容纳不下,那么它必须在磁盘上有一个位置来存储数据。与临时表类似,表变量是在e数据库中创建的。如果有足够的内存,则表

2、变量和临时表都在内存(数据缓存)中创建和处理。说明事件sp句使用的时间(毫秒)。由服务器代表事件读取逻辑磁盘的次数。这些读取操作数包含在语句执行期间读取表和缓冲区的次数。由服务器代表事件写入物理磁盘的次数。示例1变.量表条记录elrelevrr,svrr,eeesersele表,s,erresres表3扫描计数,逻辑读取次,物理读取次,预读次,I逻辑读取次,I物理读取次,I预读次。表表。扫描计数,逻辑读取次,物理读取次,预读次,I逻辑读取次,I物理读取次,I预读次。elrelevrr,svrr,eeesersele表s,erresres表F扫描计数,逻辑读取次,物理读取次,预读次,I逻辑读取次

3、,I物理读取次,I预读次。表表。扫描计数,逻辑读取次,物理读取次,预读次,I逻辑读取次,I物理读取次,I预读次。-示例2。临时表:createtable#t(idnvarchar(50),supnonvarchar(50),etadatetime)endinsert#tselecttop10000ID,supno,etafrom表-cpu:125reads:13883writes:148-表#t00000000005。扫描计数0,逻辑读取10129次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。-表表。扫描计数1,逻辑读取955次,物理读取0次,预读0次,l

4、ob逻辑读取0次,lob物理读取0次,lob预读0次。createtable#t(idnvarchar(50),supnonvarchar(50),etadatetime)insert#tselecttop1000ID,supno,etafrom表-cpu:62reads:2095writes:17-表#t00000000003。扫描计数0,逻辑读取1012次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。-表表。扫描计数1,逻辑读取108次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次。-示例3。不创建临时表,直接插入到临时

5、表selecttop10000ID,supno,etainto#tfrom表-cpu:31reads:1947writes:83-表表。扫描计数1,逻辑读取955次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次selecttop1000ID,supno,etainto#tfrom表-cpu:0reads:997writes:11-表表。扫描计数1,逻辑读取108次,物理读取0次,预读0次,lob逻辑读取0次,lob物理读取0次,lob预读0次从以上的分析中可以看出,如果使用3)方式,则会少建一个临时表那么IO中的读写也将减少次数.1)与2)都会有先建临时表的动作,并进行相应的O读取操作.从sql语句对服务器的cpu使用上来看,第三种情况cpu使用率也相对较低.从物理写入磁盘操作来看,第三种情况的物理写入次数较少.在什么情况下使用表变量来代替临时表:取决于以下三个因素:插入到表中的行数。本人认为最好是小于1000行,具体情况具体分析. 从中保存查询的重新编译的次数。 查询类型及其对性能的指数和统计信息的依赖性。在某些情况下,可将一个具有临时表的存储过程拆分为多个较小的存储过程,以便在较小的单元上进行重新编译。个人建议,当记录行小于1000行的情况下,应尽量使用表变量,除非数据量非常夫(大于1000行)并且需

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论