![]() |
1
5
使用dateadd以datetime格式保存数据最可能更快 检查此问题: Most efficient way in SQL Server to get date from date+time? 接受的答案(不是我!)演示dateadd over字符串转换。很多年前我又看到过一个同样的 |
![]() |
2
4
小心在和日期之间,看一下 How Does Between Work With Dates In SQL Server? 我曾经将一个查询从24小时运行到36秒。不要在列上使用日期函数或转换,请参见以下内容: Only In A Database Can You Get 1000% + Improvement By Changing A Few Lines Of Code 要查看哪个查询执行得更好,可以执行两个查询并查看执行计划,还可以使用statistics io和statistics time来获取执行查询所需的读取次数和时间。 |
![]() |
3
3
我不赞成连接varchars。 与字符串包含和强制转换为日期时间相比,dateadd的性能更好。 和往常一样,最好的办法是分析2个选项,并确定最佳结果,因为没有指定db。 |
![]() |
4
3
最有可能的是,两者之间不会有任何不同。 我会运行这个:
然后是查询的两个变量,这样您就可以看到并比较实际的执行成本。 |
![]() |
5
2
只要谓词计算不包括对所查询表的列的引用,那么您的方法无论如何都不重要(为了清晰起见)。
如果你要包括
在任何情况下,检查(或张贴!)这个 execution plan 确认。 |
![]() |
6
2
为什么要使用相关的子查询开始?这会比dateadd慢得多。它们就像光标,一行一行地工作。 这样的东西行吗?
|
![]() |
Community wiki · SQL语法新手 1 年前 |
|
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
![]() |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
![]() |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |