İmleç eşzamanlılık (veritabanı altyapısı)
Microsoft SQL Server supports four concurrency options for server cursors:
READ_ONLY
İYİMSER DEĞERLERLE
İYİMSER İLE SATIR SÜRÜM OLUŞTURMA
KAYDIRMA KİLİTLERİ
READ_ONLY
İmleci yoluyla konumlandırılmış güncelleştirmeler izin verilmez ve yukarı satırları üzerinde kilitler tutulmaz sonuç küme.İYİMSER DEĞERLERLE
İyimser eşzamanlılık denetimi hareket kontrol teorisi standart bir parçasıdır.İyimser eşzamanlılık denetimi, yalnızca başka bir kullanıcı veya işlem bir satır bir imleç açıldığında ve satır güncelleştirildiğinde arasındaki aralığı güncelleştirebilir, hafif bir şansı olduğunda durumlarda kullanılır.Bir imleç bu seçenekle açıldığında, kilit yok yardımcı olan en yüksek orana ayarla alttaki satırlarda tutulur.Kullanıcı bir satırı değiştirmeye çalışırsa, geçerli satırdaki değerleri satır son getirilen zaman alınan değerlerle karşılaştırılır.Değerlerin herhangi birini değiştirirseniz, sunucu başka bir kullanıcı veya işlem satırı zaten sağladı ve hata verir bilir.Değerleri aynıysa, sunucu değişikliği yapar.Bu seçeneğin seçilmesi eşzamanlılık seçeneği kullanıcı zorlar veya başka bir kullanıcıya gösteren zaman zaman hata postalarla sorumluluk kabul etmek için Programcı satır değiştirilen.Yenilemek için bu hatayı alır bir uygulama tarafından çekilen tipik bir eylem olduğu imleç, yeni değerler ve yeni değerler üzerinde değişiklik yapmak karar vermek kullanıcı olanak sağlar.text, ntext, ve image sütunların değil eşzamanlılık karşılaştırmaları için kullanılan SQL Server 6.5 veya önceki sürüm.
İYİMSER İLE SATIR SÜRÜM OLUŞTURMA
Bu iyimser eşzamanlılık denetimi seçeneği satır sürüm oluşturmayı temel alır.Satır sürüm oluşturma, temel ile temel alınan temel alınan tablo sürüm tanıtıcısı sunucu imleci okunduktan sonra satırın değiştirilip değiştirilmediğini belirlemek için kullanabileceğiniz bazı türü olması gerekir.De SQL Server, yeteneği sağladığı timestamp veri türü olan bir ikili sayı değişiklikleri veritabanına göreli sırasını gösterirGenel geçerli zaman damgası değeri, her veritabanı olan **@**dbts.Her saat olan bir satır bir timestamp sütun herhangi bir şekilde değiştirilmiş SQL Server depolar geçerli **@**dbts değer içinde timestamp sütun ve daha sonra aralıklarla **@**dbts.Bir tablo varsa, bir timestamp sütunu, sonra zaman damgaları alınır kapalı için satır düzey.Sunucu, daha sonra geçerli zaman damgası değerini satır satır son satır güncelleştirilip güncelleştirilmediğini belirlemek için getirilen saklandığı zaman damgası değeri karşılaştırabilirsiniz.Sunucunun tüm sütunlar yalnızca değerleri karşılaştırmak yok timestamp sütun.Bir uygulama üzerinde iyimser eşzamanlılık ile satır sürüm oluşturma isterse bir tablo , yok bir timestamp sütunu, imleç varsayılanlara denetim değerlerini temel alan iyimser koşutzamanlılık.Not
İçin imleçs, uzak veri kaynakları üzerinde açılan güncelleştirmeler desteklenmez aracılığıyla imleç uzak kaynak bir zaman damgası sütun içermiyorsa.
KAYDIRMA KİLİTLERİ
Bu seçenek, uygulamanın çalıştığı imleci okumak bunlar saat temel veritabanı satırları kilitlemek kötümser eşzamanlılık denetimi uygulayan sonuç küme.Sunucu imleçler kullanırken bir güncelleştirme kilidi imleci okuduğunuzda satırın üstüne yerleştirilir.İmleç bir hareket içinde hareket açıldığı güncelleştirme kilidi hareketin tamamlanma veya; geri kadar tutuluyor sonraki satırda getirilirken imleç kilit bırakılır.imleç bir hareketin dışında açılmış, sonraki satırda getirilirken kilit bırakılır.Bu nedenle, tam kötümser eşzamanlılık denetimi kullanıcının istediği her bir imleç bir hareket içinde açılmalıdır.güncelleştirme kilidi başka bir görev güncelleştirme veya özel alınıyor engeller kilit, hangi engelleyen başka bir görev güncelleştirmesini satır.Bir güncelleştirme kilidi, böylece onu diğer görevleri ikinci görev de bir okuma ile isteyen sürece satır okuma engellemez ancak, paylaşılan bir kilit engellemek değil bir güncelleştirme kilidi.
Kaydırma kilitleri
Bu imleç Eşzamanlılık seçenekleri, deyim imleç tanımında belirtilen kilitleme ipuçları bağlı kaydırma kilitleri oluşmasına neden olabilir.Kaydırma kilitleri, her satırda bir getirme alınan ve İleri getirme veya imleç kapatma kadar tutulan hangisi daha önce ortaya çıkar.İleri getirme sunucu için yeni getirme satırları kaydırma kilitleri güncelleştirdiğini ve önceki getirme satırları kaydırma kilitleri serbest bırakır.Kaydırma Kilitleri işlem kilitleri bağımsız ve bir yürütme veya rollback işlemi aynı kalır.İşaretçiler yürütme üzerinde Kapat seçeneği kapalıysa, bir yürütme tüm açık imleçleri kapatır ve getirilen veri yalıtımı sağlamak için yürütme kaydırma kilitler korunur.
Alınan kaydırma kilitleri eşzamanlılık seçeneği imleç bağlıdır ve kilitleme ipuçları içinde imleci seçin deyim.
Not
Kaydırma kilitleri için yalnızca anahtar kümesi kullanımlı ve dinamik imleçler desteklenir.
Kilitleme ipuçları |
Salt okunur |
İyimser değerlerle |
İyimser ile satır sürüm oluşturma |
Kilitleme |
---|---|---|---|---|
Hiçbir ipuçları |
- |
- |
- |
Güncelleştirme |
NOLOCK * |
- |
- |
- |
- |
HOLDLOCK |
- |
- |
- |
Güncelleştirme |
UPDLOCK |
- |
- |
- |
Güncelleştirme |
TABLOCKX |
- |
- |
- |
Güncelleştirme |
Tüm diğerleri |
- |
- |
- |
Güncelleştirme |
* nolock ipucunu belirtme yapar, onu belirtilen tablo salt okunur aracılığıyla imleç.
İmleç Eşzamanlılık seçenekleri belirtme
Eşzamanlılık seçenekleri, her imleç ortamında farklı biçimde belirtilir:
Transact-SQL İmleçler
read_only, scroll_lock ve İYİMSER anahtar sözcükler üzerinde BİLDİRMEK İMLEÇ deyim belirtin.İYİMSER anahtar sözcüğü ile satır sürüm oluşturma, iyimser belirtir Transact-SQL imleçler desteklemediği iyimser değerleri eşzamanlılık seçeneği.
ado uygulamaları
Belirtmek adLockReadOnly, adLockPessimistic, adLockOptimistic, veya adLockBatchOptimistic de LockType özellik, bir Recordset nesne.
odbc uygulamaları
sql_attr_concurrency deyim öznitelik sql_concur_read_only, sql_concur_rowver, sql_concur_values veya sql_concur_lock ayarlayın.