Share via


sp_lock (Transact-SQL)

Kilitleri hakkında bilgi raporlar.

Önemli notÖnemli

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.Kilitler hakkında bilgi edinmek için SQL Server Veritabanı Altyapısı, kullanma sys.dm_tran_locks dinamik yönetim görünümü.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

Bağımsız değişkenler

  • [ SPID1 = ] 'session ID1'
    Olan bir Veritabanı Altyapısı oturum kimliği (SPID, SQL Server 2000 ve önceki sürümleri) numarası sys.dm_exec_sessions kullanıcının istediği bilgileri kilitleme.session ID1İş int varsayılan değeri null.Yürütme sp_who oturumhakkında işlem bilgileri elde etmek için.oturum ID1 belirtilmezse, tüm kilitleri hakkında bilgi görüntülenir.

  • [ SPID2 = ] 'session ID2'
    Başka bir iş Veritabanı Altyapısı oturum kimliği numarası sys.dm_exec_sessions olan kilit aynı saat session ID1 ve kendisi hakkında da kullanıcının istediği bilgileri.session ID2İş int varsayılan değeri null.

Dönüş Kodu Değerleri

0 (başarı)

Sonuç Kümeleri

Sp_lock sonuç kümesi belirtilen oturumlar tarafından tutulan her kilit bir satır içeren @ SPID1 ve @ SPID2 parametreleri. İkisi de, @ SPID1 ne de @ SPID2 belirtilmişse, raporları kilitleri örnek içinde etkin olan tüm oturumlar için sonuç kümesi Veritabanı Altyapısı.

Sütun adı

Veri türü

Açıklama

spid

smallint

Veritabanı Altyapısıoturum kimliği numarası kilitisteyen işlemi için.

DBID

smallint

kilit tutulması veritabanı kimlik numarası.db_name() işlev veritabanı tanımlamak için kullanabilirsiniz.

ObjId

int

kilit tutulması nesne tanımlama numarası.Nesneyi tanımlamak için ilgili veritabanında object_name() işlev kullanabilirsiniz.Bir 99 kilit bir veritabanı sayfa ayırma kaydetmek için kullanılan sistem sayfalarından birini gösteren özel bir durum değeridir.

IndId

smallint

kilit tutulması dizin tanımlama numarası.

Tür

nchar(4)

kilit türü:

RID satır tanımlayıcı (RID) tarafından tanımlanan tablo içinde tek bir satırda kilitle =.

ANAHTAR seri hale getirilebilir hareketleri anahtarlarında aralık koruyan bir dizin içinde kilitle =.

pag bir veri veya dizin sayfasıkilit =.

ETİN bir kapsamüzerinde kilit =.

SEKME tüm veri ve dizinler dahil olmak üzere tüm tabloüzerinde kilit =.

DB veritabanı üzerinde kilit =.

FIL veritabanı dosyasıkilit =.

Uygulama bir uygulama belirtilen kaynakkilit =.

md meta verilerveya katalog bilgileri kilit =.

hbt bir yığın veya b-ağaç dizin kilit =.Bu bilgi, eksik SQL Server.

au bir ayırma birimikilit =.Bu bilgi, eksik SQL Server.

Kaynak

nchar(32)

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

Türü değeri: Kaynak değer

RID: Biçim fileid:pagenumber tanımlayıcıda: RID, burada Win32_FileSpecification'sayfa sayfaiçeren dosyayı tanımlar pagenumber satır içeren sayfa tanımlar ve RID sayfabelirli satır tanımlar.eşleşen Win32_FileSpecification ' file_id sütun sys.database_files Katalog görünümü.

ANAHTAR: Dahili olarak kullanılan bir onaltılı sayı Veritabanı Altyapısı.

PAG: Bir sayı biçimi fileid:pagenumber burada Win32_FileSpecification'sayfa sayfaiçeren dosyayı tanımlar ve sayfapagenumber tanımlar.

EXT: kapsamilk sayfa numarası.Biçimi fileid:pagenumber sayısıdır.

SEKMESİ: tablo zaten tanımlanır çünkü sağlanan hiçbir bilgi ObjIdsütun.

DB: Veritabanı zaten tanımlanır çünkü sağlanan hiçbir bilgi DBID sütun.

DOLDUR: Eşleşen dosya tanıtıcısı file_id sütun sys.database_files Katalog görünümü.

UYGULAMA: Kilitlenen uygulama kaynak için benzersiz tanımlayıcı.Biçimde DbPrincipleId:<ilk iki kaynakdize16 karakter><değer sağlaması>.

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

HBT: Bilgiler sağlanmıştır.Use sys.dm_tran_locks dinamik yönetim görünümü yerine.

AU: Bilgiler sağlanmıştır.Use sys.dm_tran_locks dinamik yönetim görünümü yerine.

Mod

nvarchar(8)

İstenen kilit modu.Aşağıdakilerden biri olabilir:

null = No kaynakerişim izni.Yer tutucu olarak görev yapar.

Sch-s = Şema kararlılık.Tüm oturum şema öğesinde şema kararlılık kilit tutan iken bir tablo ya da dizini gibi bir şema öğesine bırakılan değil sağlar.

Sch-m = şema değişikliği.Belirtilen kaynakşemasını değiştirmek istediği tüm oturum tarafından yönlendirilmelidir.Diğer oturumları belirtilen nesne başvuruda bulunduğunuz sağlar.

S = paylaşılan.Tutan oturum paylaşılan kaynakerişim verilmiş.

U = güncelleştirme.Sonuçta güncelleştirilebilir kaynaklardaki alınan bir güncelleme kilit gösterir.Genel biçimi oluşan çıkmaz önlemek için kullanılan zaman saatdaha olası güncelleştirme için birden fazla oturumlar kilit kaynak.

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

İş = paylaşılan amacı.s kilitleri koyun anlamında gösterir kilit hiyerarşisindeki alt bazı kaynak üzerinde.

IU hedefi Update =.u kilitleri koyun anlamında gösterir kilit hiyerarşisindeki alt bazı kaynak üzerinde.

IX hedefi özel =.Koyun anlamında gösterir x kilit hiyerarşisindeki alt bazı kaynak üzerindeki kilit.

SIU paylaşılan hedefi Update =.Paylaştırılmış erişim güncelleştirme kilitleri kilit hiyerarşisindeki bağımlı kaynaklar alınıyor'ın amacı ile bir kaynak gösterir.

ALTI paylaşılan hedefi özel =.Paylaşılan erişim kilit hiyerarşisindeki bağımlı kaynaklar üzerinde özel kilit alınıyor'ın amacı ile bir kaynak gösterir.

UIX güncelleştirme hedefi özel =.Bir kaynak kilit hiyerarşisindeki bağımlı kaynaklar üzerinde özel kilit edinme amacıyla güncelleştirme kilit tutuluyor belirtir.

bu toplu güncelleştirme =.Toplu işlemler tarafından kullanılır.

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

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

RangeI_N = anahtar aralığı Ekle ve Null kaynak kilit.Yeni bir anahtar dizin şeklinde eklemeden önce aralıkları sınamak için kullanılır.

RangeI_S = anahtar aralığı dönüştürme kilit.RangeI_N ve s kilitleri bir çakışma tarafından oluşturulan.

RangeI_U, RangeI_N ve u kilitleri bir çakışma tarafından oluşturulan anahtar aralığı dönüştürme kilit =.

RangeI_X, RangeI_N ve x kilitleri bir çakışma tarafından oluşturulan anahtar aralığı dönüştürme kilit =.

RangeX_S RangeI_N ve RangeS_S bir çakışma tarafından oluşturulan anahtar aralığı dönüştürme kilit =.kilitler.

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

RangeX_X özel anahtar aralığı ve özel kaynak kilit=.anahtar aralıkgüncelleştirirken kullanılan dönüştürme kilit budur.

Durum

nvarchar(5)

kilit isteği durumu:

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

GRANT: kilit alınamadı.

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

Açıklamalar

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

  • HAREKET YALITIM DÜZEYİNİ ayarlama oturumiçin kilitleme düzey belirtmek için kullanıyor.Sözdizimi ve sınırlamaları için bkz: HAREKET YALITIM düzeyi (Transact-SQL).

  • Tek bir başvuru, from yan tümcetümcesinde tablo kilitleme düzey belirtmek için kilitleme tablo ipuçlarını kullanarak.Sözdizimi ve sınırlamaları için bkz: Tablo İpuçları (Transact-SQL).

Tarafından kullanılan kilitleri türleri hakkında daha fazla bilgi için Veritabanı Altyapısıbakın Veritabanı Altyapısı'nda kilitleme.

Bir oturum ile ilişkili olmayan tüm dağıtılmış hareketleri artık hareketlerdir.Veritabanı Altyapısı -2, Hangi kolaylaştırır tanımlayın engelleme dağıtılmış hareketleri bir kullanıcı için SPID değerini atar tüm sahipsiz dağıtılmış hareketleriDaha fazla bilgi için, bkz. İşaretli işlemler (tam kurtarma modeli) kullanma.

İzinler

Görünüm server state izni gerektirir.

Örnekler

A.Tüm kilitleri listeleme

Aşağıdaki örnek, geçerli örnek tutulan tüm kilitleri hakkında bilgi görüntüler Veritabanı Altyapısı.

USE master;
GO
EXEC sp_lock;
GO

B.Tek sunucu işleminden bir kilit listeleme

Aşağıdaki örnek işlem kimliği hakkında kilitleri gibi bilgileri görüntüler 53.

USE master;
GO
EXEC sp_lock 53;
GO