Aylık arşivler: Temmuz 2011

SQL Server Para Formatı

T-SQL kütüphanesinde içerisinde sayısal bir veriyi yerel para formatında gösterecek bir fonksiyon bulunmamaktadır. Ancak parasal değer MONEY formatında saklanmışsa bu değeri Management Studio üzerinde SELECT ettiğimizde ondalık ayraç (decimal symbol) bilgisini sunucudaki “Region and Language” alanından okuyarak düzenleyebilir.

DECLARE @X MONEY
DECLARE @Y NUMERIC(9,2)
SET @X=125075.25
SET @Y=125075.25
SELECT @X
SELECT @Y

Bu sorgunun sonucu sırasıyla aşağıdaki gibi görünecektir.
125075,25
125075.25

Görüldüğü gibi MONEY türündeki veri için ondalık ayraç olarak virgülü kullandı. Ayrıca veri türü MONEY olduğu zaman virgül ve nokta ayraçları sorun çıkarmadan çevrilebilir. Aşağıdaki iki ifade de “125075,25¨ değeri döner.

SELECT CAST('125075.25' as MONEY)
SELECT CAST('125,075.25' as MONEY)

Değeri gösterirken binlik ayraç (digit grouping) bilgisini de göstermek için CONVERT() fonksiyonu kullanılır. CONVERT fonksiyonuna 3. parametre 1 değeri verildiği zaman binlik ayraçı da göstermiş olacaktır.

SELECT CONVERT(VARCHAR(10), @X, 1)

125,075.25
CONVERT fonksiyonu sadece MONEY türündeki veriler için bu şekilde formatlama yapabilir. Değerin türü MONEY değilse önce MONEY türüne çevirmek gerekecek.

SELECT CONVERT(VARCHAR(10), CAST(125075.25 as MONEY), 1)

T-SQL WITH TIES Seçeneği

Lokasyon ve tutar alanlarının bulunduğu bir tablo düşünelim.

SQL Server’de bu tablodaki satırların TOP N kayıtlarını almak istediğimizde aşağıdaki gibi bir sorgu yazarız.

SELECT TOP 2 location_id, amount FROM Deneme
ORDER BY amount DESC


En yüksek cirolu ilk 2 mağazayı almış olduk. Fakat bazı durumlarda en yüksek cirolu tüm satırları almak isteyebiliriz. En yüksek ciro bu örnekte 420 değeridir. Bu değerden 4 satır bulunmaktadır. Bu satırlarının hepsini almak için SQL Server’de WITH TIES yantümcesi kullanılır. Bu ifade ORDER BY ile sıralanmış sonuç listesi sıralama mantığına uyan aynı değerdeki tüm kayıtları listeler. WITH TIES yan tümcesi ancak ORDER BY ile birlikte kullanılabilir. Sorguyu aşağıdaki gibi güncellediğimiz TOP 2 olarak belirlediğimiz halde tüm 420 değerindeki satırlar listelenmiş olacaktır.

SELECT TOP 2 WITH TIES location_id, amount FROM Deneme
ORDER BY amount DESC

3GB PAE AWE üçlüsü

SQL Server 3GB PAE AWE ayarları, memory, bellek, ram nasıl ayarlanır.

Bu ayarlarla ilgili birçok soru geldiği ve forumlarda bazen bildiklerimizle çakışacak yorumlar yazıldığından bu makalede bu anahtar kodların tam olarak ne işe yaradığını en kısa ve kolay şekilde yazmaya çalışacağım. 3GB ve PAE ayarları boot.ini dosyasına yazılan kodlardır (boot.ini switches). AWE ise işletim sistemi üzerinde çalışan programlara uygulanan bir ayarlamadır. Bu düzenlemelerin yapılma ihtiyacı 32 bit mimariden kaynaklanmaktadır. Konunun hikayesini, 32 bit adreslemeyi aşağıdaki makalemde bulabilirsiniz.
SQL Server’da Maksimum Memory Kullanımı(AWE)
Bu ayarların mantığını kavramak için konuyla ilgili temel kavramlar olan Application (Uygulama), Process (İşlem) ve Virtual Memory (Sanal Bellek) kavramlarını birer cümleyle anlatmak faydalı olacaktır. İşletim sistemlerinin temel görevlerinden biri Bellek Yönetimi’dir. Talebe göre belleği tahsis eder (malloc) veya belleği serbest bırakır (free). Örneğin C programlama dilinde bu fonksiyonlar kullanarak programcı kendisi de gerektiğinde ihtiyacı kadar bellek talep edebilir ve ardından o alanla ilgili işi bittikten sonra belleği serbest bırakabilir yani sisteme geri verir. Okumaya devam et