Aracılığıyla paylaş


Bağımlı oturumlar kullanma

Bağımlı oturumlar aynı sunucuda birden çok oturumu boyunca işlemlerin koordinasyonu kolaylaştırmak.Bağımlı oturumlar aynı hareket paylaşmak iki veya daha fazla oturumlar izin ve kilits, aynı verileri üzerinde çalışabilir ve kilit çakışıyor.Aynı uygulama içinde birden çok oturum ya da birden çok uygulamayı ayrı oturumlar ile ilişkili oturumları oluşturulabilir.

İlişkili bir oturumuna katılmak için bir oturum çağıran sp_getbindtoken veya srv_getbindtoken (ile açık veri bir bağlama belirteç elde etmek için hizmet).Bağlama belirteç bir karakter olduğu dize , her ilişkili hareketin benzersiz olarak tanımlar.Bağlama belirteç sonra diğer oturumları için geçerli oturum ile ilişkili gönderilir.Diğer oturums bağlama çağırarak hareket sp_bindoturum, bağlama belirteci kullanılarak alınan ilk oturum.

Not

oturum etkin kullanıcı hareket olması gerekir sp_getbindtoken veya srv_getbindtoken başarılı olması için.

Bağlama belirteçleri, sonradan kendi oturumları ilk oturuma bağlar uygulama kodu ilk oturum yapar uygulama kodundan iletilmelidir.Yok yok Transact-SQL deyim veya bir uygulama bağlama belirteç için başka bir işlem tarafından başlatılan bir hareket almak için kullanabileceğiniz API işlevBağlama belirteç iletmek için kullanılan yöntemlerden bazıları şunlardır:

  • Tüm oturumları, aynı uygulama işleminden başlatılan bağlama belirteçleri genel bellekte depolanan veya işlevlere parametre olarak geçildi.

  • Oturumları ayrı uygulama işlemleri yapılırsa, işlemler arası iletişim (IPC), uzak yordam çağrısı (rpc) veya dinamik veri değişimi (dde) gibi kullanarak bağlama belirteçleri iletilebilir.

  • Bağlama belirteçleri depolanabilir bir tablo bir örneğinde yer alan SQL Server Veritabanı Altyapısı arayanlar bağlanma işlemler tarafından okunabilirilk oturum.

İlişkili oturumları bir dizi yalnızca tek bir oturumda tüm etkin olabilir saat.Tek oturumda bir deyim örneğinde çalıştırdığından veya örneğinden bekleyen sonuçlar ise geçerli oturum geçerli deyim iptal eder ya da işlemi bitirinceye kadar bağlı diğer hiçbir oturum, örnek erişebilir.Örnek bir başka bir deyim, ilişkili oturum meşgul ise, hareket alanı kullanılıyor ve oturuma daha sonra yeniden deneyin belirten bir hata oluşur.

Oturumları baðladýðýnýzda, her oturum, yalıtım düzey ayarı korunur.Tek oturumda yalıtım düzey ayarını değiştirmek için hareket YALITIM DÜZEYİNİ ayarlayın'ı kullanarak, kendisiyle ilişkili oturum ayarını etkilemez.

Bağımlı oturumlar türleri

İki ilişkili oturumları yerel ve dağıtılmış türleridir.

  • Yerel ilişkili oturum

    Tek bir işlemle tek bir hareket alanı paylaşmak ilişkili oturumları sağlar örnek , Veritabanı Altyapısı.

  • Dağıtılmış ilişkili oturum

    Tüm işlemin işlem tamamlanana veya kullanarak geri kadar aynı hareket iki veya daha çok örneği arasında paylaşmak ilişkili oturumları sağlar Microsoft Dağıtılmış İşlem Düzenleyicisi (ms dtc).

Dağıtılmış ilişkili oturumları olmayan bir karakter tanımlanan dize bağlama belirteç; Bunlar, dağıtılmış işlem kimlik numarası ile tanımlanır.İlişkili oturumu yerel bir işlemle ilgili bir rpc set REMOTE_PROC_TRANSACTIONS on bir uzak sunucuda yürütür, ms dtc tarafından yerel ilişkili işlem otomatik olarak ilişkili dağıtılmış bir işlem yükseltilir ve ms dtc oturum başladı.

Ne zaman kullanılacağı ilişkili oturumları

Önceki sürümlerinde SQL Server, ilişkili oturumları öncelikle kullanılan genişletilmiş saklı yordamlar, yürütmek gerekir geliştirme Transact-SQL , onları çağıran işlemin adına ifadeleri.Arama işlemi arama işlemi hareket alanını birleştirmek yordam, genişletilmiş saklı yordam tek bir parametre verir gibi bir bağlama belirteç geçmesi gerek, böylece tümleştirme genişletilmiş arama işlemi ile saklı yordamı.

De SQL Server Veritabanı Altyapısı, saklı yordamları clr kullanılarak yazılmış daha güvenli, ölçeklenebilir ve sağlam daha genişletilmiş saklı yordamları.clr depolanan yordamlar kullanın SqlContext itiraz birleştirmek arama oturum bağlamında değil sp_bindsession.

Bağımlı oturumlar hangi iş mantığı, cooperatively bir tek iş hareketi üzerinde çalışan farklı programları eklenmiştir üç katmanlı uygulamalar geliştirmek için kullanılabilir.Bu programları dikkatle kendi bir veritabanına erişimi koordine etmek için kodlanmış olmalıdır.İki oturum aynı kilitlerin paylaştığından, iki program aynı veriyi aynı anda değiştirmek denemek gerekir saat.saat içinde herhangi bir noktada, tek bir oturum hareketin bir parçası olarak iş yapmak; paralel yürütme yok olabilir.Hareketin en iyi tanımlanmış verimi noktaları, ne zaman tüm dml deyimlerini tamamladınız ve sonuçlar gibi alınan oturumları arasında yalnızca değiştirilebilir.