Bir ASP.NET uygulamasında bu süreç içinde var:
- Bir bağlantı başlat
- Bir işlemi başlatın
- Bir tablo LoadData belirli LoadID içeren bir sütun ile SqlBulkCopy sınıfı ile değerlerin çok içine yerleştirin.
- bir saklı yordam çağrı:
- Belirli LoadID tablo LoadData okuyun.
- Her satır için (süreç son birkaç dakika) geçici (#temp) tabloya sonuçları tablolar onlarca okuma ve yazma ima hesaplamalar bir sürü yapar.
- Belirli LoadID için LoadDate satırları siler.
- Her şey yapıldıktan sonra, sonuç tablosunda sonucunu yazınız.
- Hareketi tamamlamak ya da bir şey başarısız olursa geri alma.
Benim sorunum (ve işlemi başlatmak 2 kullanıcılar varsa, ikinci bir (insert masada özel bir kilit koymak gibi görünüyor çünkü) ve benim uygulama bazen zaman aşımı düşüyor önceki bittiğini beklemek zorunda kalacak olmasıdır kullanıcılar) :) beklemek mutlu değildir.
sonucu yazma: Ben sonuncusu hariç, herhangi bir etkileşim olmadığı için paralel her şeyi yapar kullanıcımız var edebilmek için bir yol arıyorum. Ne beni kapatmış / uçlar ise LoadData tablosunda siler düşünüyorum. Diğer hareket izolasyon düzeyleri kontrol ama hiçbir şey bana yardımcı olabilir gibi görünüyor.
LoadData masaya münhasır kilidi kaldırmak mümkün olacaktır mükemmel ne olurdu takın tamamlandığında, ancak işlem bitirmeden (mümkün satırları değil tablo? Kilitlemek için SqlServer zorlamak).
Herhangi bir öneri?