SQL 学习
1. 动态执行SQL语句,
如果不是到了非用地步,最好少用,运行效率不高.
declare @num int
declare @sql nvarchar(4000)
set @num = 1000
set @sql = 'select top ' + cast(@num as nvarchar) + ' id, name from user'
execute(@sql)
2.在where 条件中左边尽可能保持字段原貌,所有运算最好放到右边做.
例如: where date_sent <= dateadd(dd, -7, getdate())
3.现在MSSQL2005增加CTS功能, 目前我只在select分页数据中用到,效果还不错.
最近用在批量Update数据中,效果不是很好.
同样的测试环境,用CTS, update 10000要用40分钟; 选用top N方式,只需要十几秒.
1. 动态执行SQL语句,
如果不是到了非用地步,最好少用,运行效率不高.
declare @num int
declare @sql nvarchar(4000)
set @num = 1000
set @sql = 'select top ' + cast(@num as nvarchar) + ' id, name from user'
execute(@sql)
2.在where 条件中左边尽可能保持字段原貌,所有运算最好放到右边做.
例如: where date_sent <= dateadd(dd, -7, getdate())
3.现在MSSQL2005增加CTS功能, 目前我只在select分页数据中用到,效果还不错.
最近用在批量Update数据中,效果不是很好.
同样的测试环境,用CTS, update 10000要用40分钟; 选用top N方式,只需要十几秒.