Subscribe:

25 Aralık 2013 Çarşamba

Görev Zamanlayıcısı ile Belli Zaman Aralıklarında Sql Sorgusu Çalıştırma

Bir sorgunuz var ve hergün belli saatlerde otomatik olarak çalışmasını istiyorsunuz. Bunu gerçekleştirmek için çeşitli yöntemler bulunmakta...

Mesela Waitfor time ifadesini kullanabilirsiniz. waitfor time ile birlikte çalıştıracağınız sorguyu bir döngü içerisine alabilirsiniz. "waitfor" ifadesi ile ilgili yazıya buradan ulaşabilirsiniz.

Sql Agent servisini kullanarak yapabilirsiniz.(Not: Mssql'in express sürümlerinde agent yapısı bulunmuyor.)

Bu yazımda Windows 8 işletim sisteminde zamanlanmış görevler oluşturarak sql sorgu parçasının belirlediğim zaman aralığında otomatik olarak çalışmasını göstereceğim.

İlk önce " D:\deneme" dizininde ilgili sorgumuzu oluşturarak(metin belgesini kullanabilirsiniz) scriptimizi .sql formatında kaydedelim. (Ben "sorgumuz.sql" isminde bir dosya oluşturdum.Not: Dosyaları kaydederken Kayıt Türü olarak "Tüm Dosyalar" seçeneğini seçiniz.)

Daha sonra tekrar yeni bir metin belgesi açarak "sqlcmd -S localhost -i D:\deneme\sorgumuz.sql" ifadesini belgeye kopyalayalım. Daha sonra "çalıştır.bat" diye kaydedelim.

sqlcmd -S localhost -i D:\deneme\sorgumuz.sql
Buradaki -S anahtarı sunucu adını temsil ediyor ben localhost olarak yazdım. -i anahtarı kullanmak istediğimiz T-Sql script dosyasının yolunu tarif etmek için kullanılıyor.
sqlcmd -S localhost -E -i D:\deneme\sorgumuz.sql olarak yazsaydık buradaki -E ise güvenli bağlantı (yani windows autentication) temsil ediyor. Windows autentication değilde sql server login kullanıyorsanız -E anahtarı yerine -U anahtarı kullanarak kullanıcı adınızı -P anahtarı kullanarak da şifrenizi girmeniz gerekecek. Ör: sqlcmd SADIK -U sa -P 123456 -i D:\deneme\sorgumuz.sql




Daha sonra Denetim Masasından "Görev Zamanlayıcısı"nı açalım. Pencere açıldıktan sonra sağ taraftan "Görev Oluştur" seçeneğine tıklayalım. Genel sekmesinde tercihen gerekli yerleri dolduralım.


Daha sonra "Tetikleyiciler" sekmesine geçelim. Buradan "Günlük"(sizin tercihiniz başka olabilir) seçeneğini seçip saat olarak zamanını verelim. Ben saat her gün 23:00 da sorgumun otomatik olarak çalışmasını istiyorum. İşlemlerimiz bittikten sonra "Tamam" diyelim ve yeni tetikleyici oluşturalım.


Sonra "Eylemler" sekmesine geçelim ve burada yeni bir olay oluşturalım. Karşımıza gelen pencereden program komut dosyası olarak daha önce oluşturduğumuz "çalıştır.bat" dosyasını seçelim.

Tamam seçeneğini tıklayarak devam edelim.


Koşullar ve Ayarlar sekmesine dokunmuyorum siz tercih ettiğiniz kriterler varsa oradan ayarlamalar yapabilirsiniz. "Tamam" butonuna tıklayarak yeni görevimizi oluşturuyoruz.


 "Otomatik sql sorgulama" görevimiz hazır durumda sağ paneldeki "Çalıştır" butonuna tıklayarak hazır halindeki görevimizi aktif hale getirebiliriz. Bundan sonra hergün saat 23:00'da sql sorgum otomatik olarak arka planda çalışacaktır.


Bu kadar...Umarım faydalı olmuştur :)

5 yorum:

  1. Güzel bir paylaşım .Emeğine sağlık. ;)

    YanıtlaSil
  2. Yarın firmada deneyeceğim... (Eğer becerebilirsem ki bu senin kabahatin değil ) Aklıma geldikçe sana dua ederim

    YanıtlaSil
  3. Teşekkürler. Yıllar sonra bile birinin girip bunu okuyup faydalanması çok güzel bir şey elinize emeğinize sağlık.

    halil.degirmenci@yahoo.com

    YanıtlaSil