Table变量和临时表区别
摘要:当table变量即使遇到回滚命令,但是也不会真的执行回滚.
任何含有临时表的存储过程是不能被预编译的.这在一个很长的存储过程中,优势会更加凸显.
table变量作为变量只能在同范围内存在,不可能跨范围.还有就是table变量在内置的存储过程中或者exec(string)语句中是不可见的还有就是不能被用于INSERT/EXEC statements.
阅读全文
sql server 2005 新分页存储过程
摘要:createPROCEDURE[dbo].[PagingRecord](@PageIndexint,--页号,从0开始@PageSizeint,--页尺寸@OrderFieldvarchar(100),--排序字段及类型(多个条件用逗号分开)如:JobIDDESC,Checkintime@TableNamevarchar(100),--表名或视图表@FieldListvarchar(2000),-...
阅读全文
sql 优化之关于null 和数据类型
摘要:避免使用不兼容的数据类型: 例如float和INt、char和varchar、bINary和varbINary是不兼容的。数据类型的不兼容可能使优化器无法执行一些本来可以进行的优化操作。例如: SELECT name FROM employee WHERE salary > 60000 在这条语句中,如salary字段是money型的,则优化器很难对其进行优化,因为60000是个整型数。我们应当在...
阅读全文
sql 优化实战 从 35秒到0秒 又从0秒到25秒
摘要:今天在项目即将跨入beta版测试的时候,把数据库里的数据增多了些,大概到了200万,想暴露些性能问题。结果大部分读取数据的时间都非常长。通过sql profile找到sql语句: select * from (select OrderBasicInfo.*, ROW_NUMBER() Over(order by OrderID) as rowNumfrom OrderBasicInfo join ...
阅读全文
return语句写错地方导致数据库表长时间被锁
摘要:项目中一位朋友在使用事务的时候return写错地方了,事务还没有结束,sp就已经结束了,然后我们用select * 都出不来数据,只有用select * form table1 with(nolock) 才能够出来。不过我还在网上找到了一个好的重写sp_who_lock 的存储过程,拿出来大家一起共享。if exists (select * from dbo.sysobjects where ...
阅读全文
值得学习的sql
摘要:USE AdventureWorks; GO UPDATE Sales.SalesPerson SET SalesYTD = SalesYTD + (SELECT SUM(so.SubTotal) FROM Sales.SalesOrderHeader AS so WHERE so.OrderDate = (SELECT MAX(OrderDate) FROM Sales.SalesOrderHe...
阅读全文
SQL SERVER 字符串处理函数
摘要:字符串日期格式化函数create function fn_DateToString(@date datetime, @format varchar(20))returns varchar(20)asbegin declare @result varchar(20) select @result = (replace(replace(replace(@format,'yyyy','20'...
阅读全文