Ilişkili olan oturumları kullanma
İlişkili oturumları, aynı sunucuda birden çok oturum boyunca işlemlerin koordinasyonu kolaylaştırmak.İlişkili oturumları, hareket ve kilitleri paylaşmak iki veya daha fazla oturuma izin vermek ve kilit çakışması olmadan aynı veri üzerinde çalışabilirsiniz.İlişkili oturumları, aynı uygulamanın birden çok oturum ya da birden çok uygulamayı ayrı oturumlar ile oluşturulabilir.
Oturum ilişkili bir oturumda yer çağrıları içinsp_getbindtoken veya srv_getbindtoken(through Open Data Services) Bir bağlama simgesi bağlı her işlemin benzersiz olarak tanımlayan bir karakter dizesidir.Bağlama simgesi ile geçerli bağlanacak daha sonra diğer oturum s gönderilir oturum.Arama hareketin diğer oturumlara bağlanmasp_bindsessionalınan ilk oturum. bağ simgesini kullanarak,
Not
Bir oturum olarak bir etkin kullanıcı hareketi olması gerekirsp_getbindtoken veya srv_getbindtoken başarılı olması için.
Bağlama simgeleri, uygulama kodundan daha sonra oturumu ilk oturumuna bağlar uygulama kodu ilk oturum yapar aktarılması gerekir.Yok yokTransact-SQLdeyim veya API işlev kullanan bir uygulama bağlama belirteç başka bir işlem tarafından başlatılan bir hareket için almaBir bağlama simgesi iletmek için kullanılan yöntemlerden bazıları şunlardır:
Tüm oturumları, aynı uygulama işlemi başlatılan bağlama simgeleri genel bellekte depolanan veya işlevleri ile parametre olarak geçildi.
Oturumları ayrı uygulama işlemleri yapılırsa, işlemler arası iletişim (IPC) uzaktan yordam çağrısı (RPC) veya dinamik veri değişimi (DDE) kullanarak bağlama simgeleri iletilebilir.
örnek bir tabloda bağlantı simgeleri saklanabilirSQL Server Database EngineArayanlar ilk oturum. bağlamak işlemler tarafından okunabilir
Oturumların ilişkili bir dizi yalnızca tek bir oturumda herhangi bir anda etkin olabilir.Bir oturum bir örnek üzerinde yürütülüyor veya sonuçlar bekleyen örnek varsa, geçerli oturum işlemi tamamlandıktan veya iptal etkin ifadeyi kadar bağlı diğer hiçbir oturumu, örnek erişebilir.Örneğin 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.Bir oturumun yalıtım düzey ayarını değiştirmek için küme hareket YALITIM DÜZEYİNE kullanarak bağlı diğer oturum ayarını etkilemez.
İlişkili oturum türleri
İki ilişkili oturumu, yerel ve dağıtılmış olan.
Yerel oturum bağlı
İzin verir, oturumu tek örnek tek bir hareketin hareket alanını paylaşmak için bağlıDatabase Engine.
Dağıtılmış ilişkili oturum
İlişkili olan oturumları aynı hareketle kadar tüm işlemin tamamlanmış veya geri alınması kullanarak iki veya daha çok örneği arasında paylaşmak için izin verirMicrosoftDağıtılmış İşlem Eşgüdümcüsü (MS DTC).
Dağıtılmış ilişkili oturumları bir karakter dizesi bağlama simgesi ile tanımlanır; bunlar dağıtılmış işlem kimlik numaralarıyla tanıtılırlar.Bağlı bir oturum yerel bir işlemde yer alan ve küme REMOTE_PROC_TRANSACTIONS ON ile uzak sunucuda bir RPC yürütür, yerel ilişkili işlem MS DTC tarafından bağlanmış bir dağıtılmış hareket için otomatik olarak yükseltilir ve bir MS DTC oturum başlatılır.
Oturumlar bağlama kullanılacağı durumlar
Önceki sürümlerindeSQL Serverilişkili oturumu öncelikle kullanılan genişletilmiş saklı yordamlar, gereken yürütmek geliştirmekTransact-SQLonları çağıran işlemin adına ifadeleri.Arama işlemi genişletilmiş saklı yordam tek bir parametre yordama verir gibi bir bağlama belirteç geçirmek zorunda birleştirmek böylece genişletilmiş tümleştirme arama işlemi, hareket alanının saklı yordamı çağırma işlemi.
,SQL Server Database Enginesaklı yordamları kullanarak CLR yazılmış daha güvenli, ölçeklenebilir ve kararlı genişletilmiş saklı yordamlar.CLR saklı yordamlarıSqlContext nesne, sp_bindsession değil arama oturum bağlamında katılmaya.
Oturumların ilişkili hangi iş mantığı cooperatively bir tek iş hareketi üzerinde çalışan farklı programlar eklenmiştir üç katmanlı uygulamalar geliştirmek için kullanılabilir.Dikkatli bir şekilde, bir veritabanına erişimi düzenlemek için bu programları kodlanmış gerekir.İki oturum aynı kilit paylaşmak için iki program aynı veriyi aynı anda değiştirmek deneyin gerekir değil.Herhangi bir noktada saat, işlemin bir parçası bunu tek oturum çalışma; paralel yürütme yok olabilir.İşlem, yalnızca oturum sırasında alınan tüm DML deyimlerini, Tamamlanan ve sonuçlar gibi noktaları iyi tanımlanmış verimi arasındaki değiştirilebilir.