小编Dan*_*ews的帖子

当 SQL Server 处于单用户模式时会发生什么?

如果我将数据库置于单用户模式,我是否需要担心锁定?或者 SQL Server 基本上会执行(除了我的打开事务),就像未提交读取隔离级别一样?

我们有一个繁重的 ETL 过程,它根据数据使用诸如 TABLOCK 和 NOLOCK 之类的查询提示来编写和加速。我想知道在这些过程中将数据库置于单用户模式是否会有好处。

sql-server

4
推荐指数
1
解决办法
9323
查看次数

比较查询

在 SQL Server 中,如果您要比较来自两个查询的统计 IO,您如何确保缓存不会成为一个因素?

例如(我是在打字的时候编的,不是一个真实的例子):

SELECT Type,
    NAME
FROM TableA a
LEFT OUTER JOIN TableB b ON a.id = b.id
WHERE b.id IS NULL ;

SELECT Type,
    NAME
FROM TableA a 
WHERE NOT EXISTS (
        SELECT 1
        FROM tableb
        WHERE id = a.id
        ) ;
Run Code Online (Sandbox Code Playgroud)

我现在做什么:我以这种方式运行它,获取一个新连接(新 SID)并像这样运行它(以相反的顺序):

SELECT Type,
    NAME
FROM TableA a 
WHERE NOT EXISTS (
        SELECT 1
        FROM tableb
        WHERE id = a.id
        ) ;

SELECT Type,
    NAME
FROM TableA a
LEFT OUTER JOIN TableB b ON …
Run Code Online (Sandbox Code Playgroud)

performance sql-server query-performance

2
推荐指数
1
解决办法
90
查看次数

更新行的性能

在 SQL Sever 中更新时,我的理解是删除整行然后重新创建(这就是您获得新时间戳的原因)。那么,如果您更新 1 个字段或 500 个字段,更新的性能是否会发生变化?

我怀疑如果有索引列,因为它必须更新索引,服务器会执行更多的“工作”。回答时,假设没有触发器。

performance sql-server t-sql update query-performance

0
推荐指数
1
解决办法
100
查看次数