易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL中表变量和临时表的优缺点

http://www.cnblogs.com/Mainz/archive/2008/12/20/1358897.html
什么情况下使用表变量?什么情况下使用临时表?
表变量:
DECLARE @tb  table(id   int   identity(1,1), name   varchar(100))
INSERT @tb
SELECT id, name
from mytable
WHERE name like ‘zhang%’
临时表:
SELECT name, address
INTO #ta   from mytable
WHERE name like ‘zhang%’
表变量和临时表的比较:
临时表是利用了硬盘(tempdb数据库) ,表名变量是占用内存,因此小数据量当然是内存中的表变量更快。当大数据量时,就不能用表变量了,太耗内存了。大数据量时适合用临时表。
表变量缺省放在内存,速度快,所以在触发器,存储过程里如果数据量不大,应该用表变量。
临 时表缺省使用硬盘,一般来说速度比较慢,那是不是就不用临时表呢?也不是,在数据量比较大的时候,如果使用表变量,会把内存耗尽,然后使用 TEMPDB的空间,这样主要还是使用硬盘空间,但同时把内存基本耗尽,增加了内存调入调出的机会,反而降低速度。这种情况建议先给TEMPDB一次分配合适的空间,然后使用临时表。
临时表相对而言表变量主要是多了I/O时间,但少了对内存资源的占用。数据量较大的时候,由于对内存资源的消耗较少,使用临时表比表变量有更好的性能。
建议:触发器、自定义函数用表变量;存储过程看情况,大部分用表变量;特殊的应用,大数据量的场合用临时表。
表变量有明确的作用域,在定义表变量的函数、存储过程或批处理结束时,会自动清除表变量。
在存储过程中使用表变量与使用临时表相比,减少了存储过程的重新编译量。
涉及表变量的事务只在表变量更新期间存在。这样就减少了表变量对锁定和记录资源的需求。
表变量需要事先知道表结构,普通临时表,只在当前会话中可用与表变量相同into一下就可以了,方便;全局临时表:可在多个会话中使用存在于temp中需显示的drop。(不知道表结构情况下临时表方便一些)
全局临时表的功能是表变量没法达到的。
表变量不必删除,也就不会有命名冲突,临时表特别是全局临时表用的时候必须解决命名冲突。
应避免频繁创建和删除临时表,减少系统表资源的消耗。
在新建临时表时,如果一次性插入数据量很大,那么可以使用select into代替create table,避免log,提高速度;如果数据量不大,为了缓和系统表的资源,建议先create table,然后i


相关文档:

c# SQL数据库远程连接及配置方法

首先配置SQLSERVER2005:
打开”Microsoft SQL Server Management Studio“ 直接用Windows 用户连接进入,再在“安全性”中的“登录名”内的“新建登录名”,你就对应的添好“确定”就可以了。  
再在你对应的“数据库”里“安全性” ......

hibernate 打印SQL语句到控制台

只需要在配置文件里         hibernate.show_sql=true
    <property name="hibernateProperties">
      <value>
        hibernate.dialect=org.hibernate.dialect.Oracle9Dialect ......

ADO.NET与ORM的比较(3):Linq to SQL实现CRUD

  说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spring+Struts+Hibernate,除了在学习基础知识的时候被告知可以使用JDBC操作数据库之外,大量的书籍中都是讲述使用Hibernate这个ORM工具来操作数据。在.NET中操作数据库的方式有多种,除了最直接的方式就是使用ADO.NET之外,还可以使用NHiber ......

SQL SERVER 函数(转)

SQLServer基本函数
1.字符串函数 :
字符操作类 :
upper(char_expr) 转为大写
lower(char_expr) 转为小写
UCase(string) 返回 Variant (String),其中包含转成大写的字符串。
LCase(string) 返回字符串的小写形式。
space(int_expr) 生成int_expr个空格
replicate(char_expr,int_expr) 复制字符串int_expr次 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号