Aracılığıyla paylaş


Verimli hareketleri kodlama

Hareketleri olabildiğince kısa tutmak çok önemlidir.Bir işlem başlatıldığında, bir veritabanı yönetim sistemi (DBMS) hareket atom oranı, tutarlılık, yalıtım ve dayanıklılık (ACID) özelliklerini korumak için işlem sonuna kadar çok kaynak basılı tutmanız gerekir.Veri değiştirilirse, değiştirilmiş satırları satırları okuma'den başka bir işlem engelleyen özel kilit ile korunması gerekir ve hareketin tamamlandığı veya geri kadar özel kilit tutulması gerekir.Bağlı işlem yalıtım düzey ayarları, SELECT deyimlerinin kilitleri hareket tamamlandıktan veya geri kadar tutulması gerekir Sunucusu'ndan.Özellikle sistemlerinde çok sayıda kullanıcı içeren, hareketleri kaynaklar arasında eşzamanlı bağlantı için kilitleme çakışması azaltmak mümkün olduğunca kısa tutulmalıdır.Uzun süre çalışan verimsiz hareketleri kullanıcıların küçük sayılar ile ilgili bir sorun olabilir, ancak bir sisteminde binlerce intolerable olur.

Kodlama yönergeleri

Etkin işlemler kodlama kuralları şunlardır:

  • Bir işlem sırasında kullanıcıların giriş gerektirmez.

    Bir işlem başlatılmadan önce gerekli tüm giriş kullanıcılarından alın.Bir işlem sırasında ek kullanıcı girdisi gerekmez, geçerli işlem geri almak almak ve kullanıcı girişini sağlanan sonra hareketi yeniden başlatın.Kullanıcılara hemen yanıt bile insan tepki zamanları bilgisayar hızları vastly daha yavaş gerçekleşiyor.Işlem tarafından tutulan tüm kaynakların olası engelleme sorunlarına neden olan bir çok uzun saat boyunca tutulur.Kullanıcıların yanıt vermezse, işlem bunlar, hangi değil çıkabilir yanıt kadar kritik kaynakları kilitleme etkin olarak kaldığı için birkaç dakika ya da hatta saat.

  • Bir hareket, verileri en tüm olanaklıysa göz atarken açın.

    Tüm ön bir veri çözümlemesi tamamlanana kadar hareketleri başlatılmadı.

  • Hareketin olabildiğince kısa tutun.

    Yapılması gereken değişiklikler öğrendikten sonra bir hareketi başlatmak, değişiklik ifadeyi, çalıştırmak ve hemen sonra yürütmek veya geri almak almak.Gerekirse, önce hareket açın.

  • Engelleme azaltmak için , sorgularda salt okunur bir Satır sürüm tabanlı bir yalıtım düzey'ni kullanarak göz önünde bulundurun.Daha fazla bilgi için bkz:Satır Güncelleştirme tabanlı yalıtım düzeyleri kullanma.

  • Akıllı, alt işlem yalıtım düzeyi kullanmasına.

    Bir okuma kaydedilen işlem yalıtım düzey kullanmak için birçok uygulama meşgul kodlanmış.Tüm hareketler için seri hale getirilebilir hareket yalıtım düzey gerektirir.

  • Akıllı imleçin kullanımı dışında alt eşzamanlılık seçenekleri, iyimser eşzamanlılık seçenekleri gibi yapın.

    Düşük bir olasılık eşzamanlı güncelleştirmeleri bir sistemdeki ile bir zaman zaman ", okuduktan sonra başka birisinin verilerinizi değiştirildi" hata ilgili, yükü olarak okuduğunuzda, her zaman satır kilitleme, yükü çok düşük olabilir.

  • En az bir işleme sırasında olası veri miktarını erişin.

    Bu, böylece hareketler arasında Çekişme azaltarak, kilitli bir satır sayısını lessens.

Eşzamanlılık ve kaynak sorunları

Eşzamanlılık ve kaynak sorunlarını önlemek için , Kapalı hareketler dikkatle yönetin.Kapalı hareketler, sonraki kullanırken Transact-SQL sonra yürütme veya ROLLBACK deyim, otomatik olarak yeni bir hareket başlatır. Bu uygulama ile veri taradığında, veya bile kullanıcıdan girdi gerektirdiğinde açılmak üzere yeni bir hareket neden olabilir.Bir hareketi yeniden veri değişimlerini korumak için gerekli kadar veri değişimlerini korumak için gereken son işlem tamamlandıktan sonra örtülü hareketleri açın.Bu işlem sağlar SQL Server Database Engine Uygulama, veri ve kullanıcıdan girdi almak tarama sırasında otomatik yürütme modu kullanın.

Anlık görüntü yalıtım düzey etkinleştirildiğinde, yeni bir işlem kilit tutmak, ancak buna ek olarak, uzun süren bir işlem eski sürümlerini gelen kaldırılmakta engeller tempdb.