作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
哪个选项更快,为什么?
SELECT
COUNT(1) OVER (PARTITION BY 1), -- Option 1
ROW_NUMBER() OVER ( ORDER BY ac.[dateupdated] DESC) AS RowNum,
FROM MyTable ac
WHERE ac.[idstatus] = @idstatus AND ac.[idtype] = @idtype
SET @TotalRecords = @@ROWCOUNT -- Option 2
这个想法是在 DEV 中,两个选项之间的差异是 1 秒,但在 PROD 中,两个选项都非常接近 0(0.03 秒)。
最佳答案
在实践中,我发现count over
非常慢,尤其是对于复杂的查询。更不用说您现在对结果集中的每一行都有计数。
如果您动态生成查询,那么首先执行 select count(*)
(使用所有过滤器等)然后执行您想要的实际选择实际上要快得多。
我不确定您是否可以相信 @@ROWCOUNT
在所有情况下都是正确的。例如,如果您将分页添加到查询等中,它会返回什么?我希望它会返回返回的行数(即页面大小)而不是总数。
关于sql-server - 获取查询返回的总行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20326409/
如何在表格底部做一行求和(TreeTableView - JavaFX 或 TableView)? (对不起我的英语不好)请写一个例子。 以图片(总计)为例 http://i.stack.imgur.
我是一名优秀的程序员,十分优秀!