小编Eva*_*kas的帖子

SQL Server,TOP 与 ROW_NUMBER

我正在学习执行计划并尝试不同的查询并比较它们的性能并偶然发现了这一点:

SELECT StatisticID
FROM (
    SELECT StatisticID, ROW_NUMBER() OVER (ORDER BY StatisticID) AS rn
    FROM FTCatalog.Statistic
    ) AS T
WHERE T.rn <= 1000
ORDER BY rn

SELECT TOP 1000 StatisticID
FROM FTCatalog.Statistic
ORDER BY StatisticID
Run Code Online (Sandbox Code Playgroud)

它们都返回相同的结果集 - 但是第一个执行速度更快并且资源消耗更少(至少 SSMS 告诉我)这是执行计划: 执行计划

与 SQL 查询计划资源管理器的比较: 在此处输入图片说明 谁能给我一些关于幕后实际发生的事情以及结果为何不同的见解?如果您还有什么需要 - 请告诉我。

谢谢,埃瓦尔达斯。

performance sql-server execution-plan query-performance

9
推荐指数
1
解决办法
4343
查看次数

SQL Server TRUNCATE TABLE 权限

是否可以将 SQL Server 用户配置为无权访问 DDL 语句但有权访问运行TRUNCATE TABLE命令。我知道在幕后它是一个 DDL。

我在搜索引擎上找不到这个。

sql-server permissions truncate sql-server-2016

3
推荐指数
1
解决办法
1914
查看次数