Merhabalar, MS SQL Server 2012 üzerinde kullanmış olduğum 3 güzel 🙂 fonksiyondan bahsedeceğim. Bunlar Kümülatif Toplam için ‘Sum Over(Order By)’, Metrik Bilgiler için ‘sp_spaceusage’ ve açıklayıcı bilgiler için ‘sp_help’. Öncelikle sample database olarak AdventureWorks2012 kullanıyorum. Sample database’e buradan ulaşabilirsiniz.
1-Kümülatif Toplam
Tablo üzerinde istediğiniz bir alanın kümülatif toplamını,
“Sum(ColumnName1) Over(Order By ColumName2) as KumulatifToplam” olarak hesaplayabiliriz. Burada ColumName1 Toplanacak Alan, ColumnName2 ise hangi sıralamaya göre toplama işleminin yapılacağını belirtiyor. Aşağdaki örneğimizde ListPrice değerlerini ProductId sıralama değerine göre Kümülatif olarak (ListPrice değerleri 0 dan farklı olan ve ProductId değerlerinin 600 ile 700 arasında olması koşulu altında) topluyor.
use AdventureWorks2012 --Kümülatif Toplam select p.ProductID, p.Name, p.ProductNumber, p.ReorderPoint, p.StandardCost, p.ListPrice, Sum(ListPrice) Over(Order By ProductID) AS KumulatifToplam from Production.Product p where p.ListPrice<>0 and p.ProductID between '600' and '750'
Hakkında detaylı bilgiye buradan https://msdn.microsoft.com/en-us/library/ms187810.aspx ulaşabilirsiniz.
2-Tablo Hakkında Metrik Bilgiler
Tablonun disk üzerindeki metrik bilgileri sp_spaceused fonksiyonunu kullanarak öğrenebiliriz. Fonksiyonun kullanımı sp_spaceused ‘DatabaseName.Owner.TableName’ bu şekildedir. Bu fonksiyon tablo hakkında;
- satır sayısı(rows),
- verinin boyutu (data),
- indeksin boyutu(indexsize)
gibi metrik bilgileri vermektedir. Bazen tablonuzun içerisinde yer alan verinin boyutunu öğrenmek isteyebilirsiniz. Bu tablonun diskte kapladığı alanın 30512(KB)/1024=29,796875 MB olduğu görülmektedir.
--Metrik Bilgiler sp_spaceused 'AdventureWorks2012.Person.Person'
Hakkında detaylı bilgiye buradan https://msdn.microsoft.com/en-us/library/ms188776.aspx ulaşabilirsiniz.
3-Tablo Hakkında Açıklayıcı Bilgiler
Tabloya ait açıklayıcı bilgileri sp_help fonksiyonu ile elde edilmektedir. Fonksiyonun kullanımı sp_help ‘DatabaseName.SchemaName.TableName’ bu şekildedir. Açıklayıcı bilgiler içerisinde;
- Tablonun oluşturulma tarihi ve sahiplik bilgisi,
- Tablodaki columnname ait detaylı bilgi (Type, Computed, Lenght, Collaction vb.),
- Tablodaki indeksler ve açıklayıcı bilgiler,
gibi oldukça detaylı açıklayıcı bilgiler vermektedir.
--Açıklayıcı bilgiler sp_help 'AdventureWorks2012.Person.Person'
Not: isp_help ‘DatabaseName.Owner.TableName’ olarak elde ettiğimiz açıklayıcı bilgileri ilgili tablo üzerinde ALT+F1 kombinasyonu ile elde edebiliriz.
Hakkında detaylı bilgiye buradan https://msdn.microsoft.com/en-us/library/ms187335.aspx ulaşabilirsiniz.
Görüş, öneri ve katkıda bulunmak isterseniz uslumetin@gmail.com ‘dan bana ulaşabilirsiniz. Bir sonraki yazıda yeniden görüşmek üzere, selamlar 🙂