关于 T-SQL 的几点小九九
2009-06-08 10:31:48 来源:WEB开发网核心提示: 您或许没有兴趣去测试这条存储过程的性能如何,我想还是有必要将其运行之后生成的“执行计划”展示给大家看看:图片看不清楚?请点击这里查看原图(大图),关于 T-SQL 的几点小九九(3),那么如果将符合 ANSI SQL 的存储过程修改为使用 T-SQL 特有的 SET
您或许没有兴趣去测试这条存储过程的性能如何,我想还是有必要将其运行之后生成的“执行计划”展示给大家看看:
图片看不清楚?请点击这里查看原图(大图)。
那么如果将符合 ANSI SQL 的存储过程修改为使用 T-SQL 特有的 SET ROWCOUNT 来实现的话,其“执行计划”又会如何呢?或许会让你有点大跌眼镜的感觉,不是吗?
这样一次强烈的对比,或许并不能说明什么,ANSI SQL 是 T-SQL 的基石,更准确的说法应该是 T-SQL 只是 ANSI SQL 标准的一种具体实现。而 TOP 和 SET ROWCOUNT 无非都是 T-SQL 中一种特有的实现,一切都是为了提高性能而为,我们用之,未尝不可。只是请您记住,在其他的数据库产品或者数据库编程语言中,可不一定有 TOP 和 SET ROWCOUNT 实现哟。
2. 一个荒唐的 T-SQL 语句
或许您和我一样,曾经有过编写类似于这样的 T-SQL 语句:
SELECT *
FROM (SELECT TOP 100 IT_ID, Title
FROM reglogin.dbo.InfoTable
ORDER BY IT_ID DESC) AS newTable;
上面的 SQL 语句何来的荒唐,那么我借用 T-SQL 大师 Ben-Gan 的描述来说明“荒唐”的由来。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
更多精彩
赞助商链接