Aracılığıyla paylaş


sp_lock (Transact-SQL)

Kilit bilgileri bildirir.

Important noteImportant Note:

This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Kilitler hakkında bilgi edinmek için SQL Server Database Engine, kullanın sys.dm_tran_locks dinamik yönetimi görüntüleyin.

Topic link iconTransact-SQL sözdizimi kuralları

sp_lock [ [ @spid1 = ] 'session ID1' ] [ , [@spid2 = ] 'session ID2' ]
[ ; ]

Bağımsız değişkenler

  • [ @spid1 = ] 'session ID1'
    Is a Database Engine session ID (SPID in SQL Server 2000 and earlier) number from sys.dm_exec_sessions for which the user wants locking information.session ID1 is int with a default value of NULL.yürütmek sp_who oturum işlemi bilgi edinme.If oturum ID1 belirtilmezse, tüm kilitler hakkında bilgi görüntülenir.

  • [ @spid2 = ] 'session ID2'
    Is another Database Engine session ID number from sys.dm_exec_sessions that might have a lock at the same time as session ID1 and about which the user also wants information.session ID2 is int with a default value of NULL.

Dönüş Kodu Değerleri

0 (başarılı)

Sonuç Kümeleri

The sp_kilit result küme contains one row for each kilit held by the sessions specified in the @spid1 and @spid2 parameters.Hiçbiri, @ spid1 nor @ spid2 belirtilirse, tüm oturumların kilitlerin sonucu raporlar ' ın örneğinin o anda etkin ayarlaDatabase Engine.

Sütun adı

Veri türü

Açıklama

SPID

smallint

The Database Engine oturum ID number for the process requesting the kilit.

DBID

smallint

Veritabanının kilit tutulması kimlik numarası.DB_NAME() kullanabileceğiniz işlev veritabanını tanımlamak için.

ObjId

int

Kimlik numarası nesnesi üzerinde kilit tutulur.Nesneyi tanımlamak için ilgili veritabanında OBJECT_NAME() işlevini kullanabilirsiniz.99 Değeri tahsisat sayfaları bir veritabanına kaydetmek için kullanılan sistem sayfalardan birini kilitlendiğinde gösteren özel durum.

IndId

smallint

Üzerinde kilit tutulduğu dizini tanımlama numarası.

Tür

nchar(4)

Kilit türü:

RID kilit, tek bir satırda = bir tablo satır tanımlayıcı (RID) tarafından tanımlanır.

anahtar anahtarlarının seri hale getirilebilir hareketlerinde aralık koruyan bir dizin içinde kilit =.

PAG kilit dizin ya da veri sayfasında =.

EXT kilit üzerinde bir ölçüde =.

Sekme tüm veri ve dizinler dahil olmak üzere tüm tabloyu üzerinde kilit =.

DB kilit üzerinde bir veritabanı =.

FIL kilit bir veritabanı dosyası üstünde =.

APP bir uygulama için belirtilen kaynak kilit =.

MD meta veriler veya katalog bilgileri Locks =.

HBT kilit öbek veya B-ağacı dizin =.Bu bilgiler, tamamlanmadı SQL Server.

Otomatik GÜNCELLEŞTIRMELER üzerinde bir ayırma birimi kilit =.Bu bilgiler, tamamlanmadı SQL Server.

Kaynak

nchar(32)

Kilitli kaynağı tanımlayan değer.Tanımlanan bir kaynak türünü değerinin biçimi bağlıdır TYPE sütun:

TYPE Değer: Kaynak Değeri

RID: An identifier in the format fileid:pagenumber:rid, where fileid identifies the file containing the page, pagenumber identifies the page containing the row, and rid identifies the specific row on the page.fileid matches the file_id column in the sys.database_files catalog view.

Anahtar: Tarafından dahili olarak kullanılan BIR onaltılı sayıDatabase Engine.

pag: Bir sayı biçimi fileid:pagenumber fileid sayfa içeren dosyayı tanımlar ve sayfa pagenumber tanımlar.

Uzantı: Testin ilk sayfa tanımlayan numara. Biçim fileid:pagenumber içinde sayısıdır.

SEKME: Tablo zaten tanımlandığından sağlanan bilgi yokObjId sütun.

DB: Veritabanı zaten tanımlandığından sağlanan bilgi yokDBID sütun.

DOSYASI: Eşleşen dosya tanıtıcısıfile_id sütunsys.database_files kataloğunu görüntüleyin.

Uyg: Uygulama için benzersiz bir tanımlayıcı kaynak kilitli. Biçimi DbPrincipleId:<16 karakter Kaynak dizesinin ilk iki><hashed değeri>.

md: kaynak türüne göre değişir. Daha fazla bilgi için bkz: Açıklama resource_description sütunundasys.dm_tran_locks (Transact-SQL).

hbt: Sağlanan bilgi yok. Use sys.dm_tran_locks dinamik yönetimi yerine görüntüleyin.

au: Sağlanan bilgi yok. Use sys.dm_tran_locks dinamik yönetimi yerine görüntüleyin.

Modu

nvarchar(8)

Istenen kilit modu.Aşağıdaki gibi olabilir:

NULL = No için erişim izni kaynak.Yer tutucu olarak görev yapar.

Sch-S Schema kararlılık =.Herhangi bir oturum şema öğesinde şema kararlılık kilit tutan sırasında dizin veya tablo gibi bir şema öğesine bırakılır sağlar.

Sch-M şema değişikliği =.Belirtilen kaynak şemasını değiştirmek isteyen herhangi bir oturum tarafından tutulan gerekir.Belirtilen nesne başka bir oturumu başvuran sağlar.

S = paylaşılan.Erişim için paylaşılan oturum bekletiliyor verilen kaynak.

U Update =.Güncelleştirilen sonunda kaynaklardaki alınan bir güncelleştirme kilit gösterir.Genel biçimi birden çok oturum kaynaklar için olası bir güncelleştirmeyi daha sonra kilitlediğinizde oluşan çıkmaz önlemek için kullanılır.

X özel =.oturum bekletiliyor kaynak özel kullanım erişimi verilir.

Paylaşılan amacı = IS.Amaç, S kilitlerin yerleştirmek gösterir bazı alt kaynak kilit sıradüzeninde.

IU hedefi Update =.Amaç, U kilitlerin yerleştirmek gösterir bazı alt kaynak kilit sıradüzeninde.

IX hedefi özel =.Amaç, yerleştirmek gösterir bazı bağımlı üzerinde kilitleri X kaynak kilit sıradüzeninde.

SIU paylaşılan hedefi Update =.Paylaşılan erişim gösterir bir kaynak ile amacıyla güncelleştirme kilitlerin bağımlı kaynak s kilit sıradüzeninde alınıyor.

SIX paylaşılan hedefi özel =.Paylaşılan bir kaynağa erişim izni ile Kilit hiyerarşisindeki yan kaynaklardaki özel kilit alınıyor amacıyla gösterir.

UIX hedefi özel Update =.Bir güncelleştirme kilidi Tutuluyor amacıyla Kilit hiyerarşisindeki yan kaynaklardaki özel kilit alınıyor kaynak gösterir.

BU Toplu Güncelleştirmesi'ni =.Toplu işlemler tarafından kullanılır.

RangeS_S paylaşılan anahtar aralık ve paylaşılan kaynak kilit =.Seri hale getirilebilir aralık tarama gösterir.

RangeS_U paylaşılan anahtar aralık ve güncelleştirme kaynak kilit =.Seri hale getirilebilir güncelleştirmesi taraması gösterir.

RangeI_N anahtar aralık Ekle ve null kaynak kilit =.Yeni bir anahtar dizini eklemeden önce aralıkları sınamak için kullanılır.

RangeI_S anahtar aralık dönüştürme kilit =.Bir çakışma RangeI_N ve S kilitlerin tarafından oluşturuldu.

RangeI_U RangeI_N ve U kilitlerinin bir çakışma tarafından oluşturulan anahtar aralık dönüştürme kilit =.

RangeI_X RangeI_N ve X kilitlerinin bir çakışma tarafından oluşturulan anahtar aralık dönüştürme kilit =.

RangeX_S = Key-Range Conversion lock created by an overlap of RangeI_N and RangeS_S.locks.

RangeX_U RangeI_N ve RangeS_U kilitlerinin bir çakışma tarafından oluşturulan anahtar aralık dönüştürme kilit =.

RangeX_X özel anahtar aralık ve özel kaynak kilit =.Bir aralıktaki bir anahtar güncelleştirilirken kullanılacak dönüştürme kilit budur.

Durum

nvarchar(5)

kilit isteği durumu:

cnvrt: Kilidi başka modundan dönüştürülür, ancak bu dönüştürme, çakışan bir modu kilit tutan bir başka işlem tarafından engellendi.

grant: kilit alındı.

BEKLEME SÜRESİ: Kilitleme, kilit ile çakışan bir mod tutan bir başka işlem tarafından engellendi.

Remarks

Kullanıcılar, okuma işlemleri tarafından kilitleme denetleyebilirsiniz:

  • Bir oturum için kilitleme düzeyini belirlemek için işlem yalıtım düzey küme kullanıyor.Sözdizimi ve sınırlamalar için bkz: işlem yalıtım düzey (Transact-SQL) küme.

  • Bir tablonun bir FROM yan tümcesinde tek tek bir başvuru için kilitleme düzeyini belirlemek için kilitleme tablo ipuçları kullanma.Sözdizimi ve sınırlamalar için bkz: Tablo ipuçları (Transact-SQL).

Kilitlerin tarafından kullanılan türleri hakkında daha fazla bilgi için Database Engine, bkz: Veritabanı Altyapısı ' kilitleme.

Bir oturum ile ilişkili tüm dağıtılmış hareketleri artık hareketler var.The Database Engine assigns all orphaned distributed transactions the SPID value of -2, which makes it easier for a user to identify blocking distributed transactions.Daha fazla bilgi için bkz:Işaretli işlemler (Tam kurtarma modeli) kullanma.

İzinler

Sunucu Durum VIEW iznine gerek duyar.

Örnekler

C.Tüm kilitler listeleniyor.

Aşağıdaki örnek, şu anda örneğini tutulan tüm kilitlerin hakkındaki bilgileri görüntüler Database Engine.

USE master;
GO
EXEC sp_lock;
GO

b.Tek sunucu işleminden bir kilit listeleniyor.

Aşağıdaki örnekte kilitler (işlem KIMLIĞI ile ilgili gibi bilgileri görüntüler. 53.

USE master;
GO
EXEC sp_lock 53;
GO