READ READLY文件组是否减少锁定

时间:2017-03-22 08:26:33

标签: sql-server

在常规数据库(即非只读)中,将表放在只读文件组中是否会在访问时减少锁定?

E.g。将单独的文件组设置为读写,创建和填充表,将文件组更改为读写。

1 个答案:

答案 0 :(得分:3)

不。

只读文件组不会阻止/减少锁定(我假设我们只讨论共享锁,因为没有其他语句是不可能的)..

当数据库设置为只读

时,可以阻止锁定

只读文件组锁定方面已在此处介绍:Read-Only filegroups and Locking

use general
go


alter database general add filegroup foo
go

alter database general add file (
name = file1,
filename = ‘c:tempfile1’)
to filegroup foo

— create a table and associate it to a filegroup
create table t_fg (c1 int, c2 int) on foo
insert into t_fg values (1,1)

— mark the filegroup read-only
alter database general modify filegroup foo read_only

— run a transaction with repeatable read isolation
set transaction isolation level repeatable read
begin tran
select * from t_fg where c1 = 1

— no check the locks
sp_lock @@spid

— here is the output
spid   dbid   ObjId       IndId  Type Resource                         Mode     Status
—— —— ———– —— —- ——————————– ——– ——
53     10     1381579960  0      RID  3:8:0                         S        GRANT
53     10     0                 0      DB                                     S        GRANT
53     10     1381579960  0      PAG  3:8                           IS       GRANT
53     10     1381579960  0      TAB                                   IS       GRANT
53     1      1115151018   0      TAB                                   IS       GRANT