2009-05-14 11 views

cevap

64

SQL Server aracısı, işin yeni bir yineleme başlatılmadan önce çalışıp çalışmadığını kontrol eder. Uzun süren bir işiniz varsa ve programı zamanlanırsa, bir sonraki aralığa kadar atlanır.

Bunu kendiniz için deneyebilirsiniz. Zaten çalışan bir işi başlatmaya çalışırsanız, bu etki için bir hata alırsınız.

+0

Harika, tam olarak bilmek istediklerim. Büyük e-postaları indirmek için bazen uzun süren bir e-posta denetleyicim var. Her dakika çalıştığı için, birincisi henüz tamamlanmamışsa, işin ikinci bir örneğinin başlatılmaması önemlidir. –

+0

Bunu başarmanın bir yolu var mıdır, yani atlamayı önlemek ve işin başka bir örneğini başlatmaktan mı bahsedeceğim? Ya da başka bir SQL İşi yaratmanız mı gerekiyor? Teşekkürler –

3

Çalışıyorsa, atlayacağından eminim.

2

Hangi SQL Server sürümünü kullanıyorsunuz? Bu test etmek için oldukça kolay bir şey gibi görünüyor. Tek bir satırı bir tabloya yerleştiren ve işi hızlı bir şekilde arka arkaya iki kez çalıştırmak için WAITFOR DELAY'den daha kısa olan bir WAITFOR ile bir iş kurun.

SQL Server 2005'te böyle bir sınama çalıştırıldığında, çakışan koşuyu atladı.

+0

Bunu yapmayı düşünürdüm - ama daha kolay görünüyordu. – Paul