1. Anasayfa
  2. SQL Server

SQL Undocumented Procedures – Dökümente Edilmemiş Prosedürler


0

Bu yazımızda size birçok kolaylıklar sağlayabilecek Dökümente Edilmemiş Stored Prosedürler den bazılarını inceleyeceğiz.

Başlamadan önce bu prosedürlerin bir kısmının eski SQL versiyonlarından yeni versiyonlara “depricated” olarak aktarıldığını, yani ilerideki versiyonlarda bu prosedürlerin olmayabileceğini bilmeliyiz. Yeni bir proje geliştirirken bu sp leri kullanmamızın versiyon geçişlerinde sorun çıkarabileceğini göz ardı etmeyiniz.

SP_MSFOREACHDB:

Yazdığımız bir sorguyu Instance üzerindeki tüm tablolarda çalıştırmak istediğimizde kullanabileceğimiz bir sp.

sp_msforeachdb ‘BACKUP DATABASE ? TO DISK = ”D:\DATA_SQL\?.bak”’

Örneğinde tek bir satır kod ile tüm veritabanlarının yedeğini tek seferde alabiliriz. Yazılış metodu olarak veritabanı ismi yerine ? karakteri kullanılır.

Belki tüm veritabanlarını Shrink etmek de isteriz, bunlar hep tek satır J;

sp_ msforeachdb ‘DBCC SHRINKDATABASE(N”?” )’

SP_MSFOREACHTABLE:

Yazdığımız sorguyu bir veritabanındaki tüm tablolarda çalıştırmak istediğimizde kullanabileceğimiz bir sp.

sp_msforeachtable ‘SELECT COUNT(1) FROM ? ‘

Tüm tablolarımın satır sayılarını bulmak için kullanabilirim J .Çok mantıklı bir örnek olmadı değil mi?

Diyelim ki küçük birkaç tablo ile başlayan bir projeniz var. Kullanıcı talepleri arttıkça tablo sayıları arttı. Her gün yeni tablolar, yeni alanlar açılıyor. Ama günün birinde farklı bir talep geldi proje başında kesinlikle lazım olmayacak denilmesine rağmen artık veritabanındaki tüm tablolarda her bir kayıt için kayıt tarihi tutulması gerekiyor.

Tabi ki tüm tablolara tek tek alan açmaya uğraşmayacaksınız!

sp_msforeachtable ‘ALTER TABLE ? ADD CREATEDATE SMALLDATETIME’

koduyla tüm tablolarımıza SmallDateTime tipinde bir kayıt oluşturulma tarihi ekledik.

SP_MSLOGINMAPPINGS:

SQL Server da hangi login hangi database altında hangi db user a denk geliyor sorusunun cevabını verir. Özellikle karmaşık bir yetkilendirme yapınız varsa login-user maplenmesi konusunda referans alabilirsiniz.

Resim-1

SP_MSTABLESPACE:

Tablo bazında kayıt sayısı, data alanı, index alanı bilgilerini verir.(Resim-2)

Resim-2

Tek tablo için değil de tüm tablolar için istiyorsak az önce kullandığımız sp_msforeachtable sp si ile sp_msforeachtable ‘sp_mstablespace ”?”’ şeklinde kullanabiliriz.

SP_WHO2:

En çok kullanılanlarından biridir. Özellikle problem anlarında Activity Monitor ara yüzünde yüklenme sorunları yaşandığında, hangi kullanıcıdan hangi sorgu geliyor ne kadar işlemci zamanı harcıyor, ne kadar disk IO su yapıyor sorularının cevabını verir.(Resim-3)

Resim-3

XP_ENUM_OLEDB_PROVIDERS:

Sunucuda yüklü olan OLEDB provider listesini getirir. İstediğiniz kaynağa bağlanmak için gerekli provider var mı bakabilirsiniz.

XP_ENUMERRORLOGS:

“C:\Program Files\Microsoft SQL Server\MSSQL10_50 \MSSQL\Log” klasöründe görebileceğiniz hata dosyalarının listesini verir.(Path kuruluma göre değişebilir.)Log dosyasına yeni kayıt gelip gelmediğini anlamak için Date alanını kontrol edebilirsiniz.

XP_FILEEXIST:

İsminden de anlaşılabileceği gibi dosya ya da klasörün mevcut olup olmadığını kontrol eder.

xp_fileexist ‘D:\DATA_SQL\AdventureWorks2008R2.bak’

XP_FIXEDDRIVES:

SQL diskte boş alan kalmaması zaman zaman karşılaşılabilecek ve sıkıntılı bir durumdur, en iyisi bu durum oluşmadan önlem almak ve çözüm üretmektir.

Bu SP, sunucu üzerinde bulunan sabit diskleri ve boş alanlarını gösterir. Disklerinizin boş alanlarını takip ettiğiniz bir altyapınız yok ise bunun üzerinden bir çözüm üretebilirsiniz.

Undocumented Sp ler içinden en çok kullanılanlarını kısaca incelemiş olduk.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

Bu İçeriğe Tepkin Ne Oldu?
  • 0
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

İstanbul Üniversitesi Bilgisayar Mühendisliği mezunudur. Kariyerine yazılım ile başlamış olup, zaman içerisinde .Net ve Dynamics Axapta üzerinde geliştirmeler yapmıştır. Son yıllarda yoğun olarak, veritabanı teknolojileri, iş zekası ve raporlama sistemleri ile ilgilenmektedir. Eroğlu Holding'de Bilgi Teknolojileri Proje Lideri olarak çalışmaktadır.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir