#DBA #SQL #Server #Performance #Tuning
2008-02-13
SQL'de Tarih Sorunlarını Gidermek
Bu sonuca ulaşacak iki farklı SQL çözümüm var:
Çözüm-1:
SELECT CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS SMALLDATETIME)
Çözüm-2:
SELECT CAST(CAST(GETDATE() AS VARCHAR(12)) AS SMALLDATETIME)
MS SQL Server 2005 karşılaşılan bu vb sorunları MS SQL Server 2008 de çözmüşler. Dileyenler konu ile ilgili yazmış olduğum MS SQL Server 2008 - Yeni Tarih Veri Tipleri'ni okuyabilir.
2008-02-12
Luhn Algoritması
Luhn Algoritması ile ilgili işe yarar T-SQL kodlar:
CREATE FUNCTION dbo.fnIsLuhnValid
(
@Luhn VARCHAR(8000)
)
RETURNS BIT
AS
BEGIN
IF @Luhn LIKE '%[^0-9]%'
RETURN 0
DECLARE @Index SMALLINT,
@Multiplier TINYINT,
@Sum INT,
@Plus TINYINT
SELECT @Index = LEN(@Luhn),
@Multiplier = 1,
@Sum = 0
WHILE @Index >= 1
SELECT @Plus = @Multiplier * CAST(SUBSTRING(@Luhn, @Index, 1) AS TINYINT),
@Multiplier = 3 - @Multiplier,
@Sum = @Sum + @Plus / 10 + @Plus % 10,
@Index = @Index - 1
RETURN CASE WHEN @Sum % 10 = 0 THEN 1 ELSE 0 END
END
CREATE FUNCTION dbo.fnGetLuhn
(
@Luhn VARCHAR(7999)
)
RETURNS VARCHAR(8000)
AS
BEGIN
IF @Luhn LIKE '%[^0-9]%'
RETURN @Luhn
DECLARE @Index SMALLINT,
@Multiplier TINYINT,
@Sum INT,
@Plus TINYINT
SELECT @Index = LEN(@Luhn),
@Multiplier = 2,
@Sum = 0
WHILE @Index >= 1
SELECT @Plus = @Multiplier * CAST(SUBSTRING(@Luhn, @Index, 1) AS TINYINT),
@Multiplier = 3 - @Multiplier,
@Sum = @Sum + @Plus / 10 + @Plus % 10,
@Index = @Index - 1
RETURN @Luhn + CASE WHEN @Sum % 10 = 0 THEN '0' ELSE CAST(10 - @Sum % 10 AS CHAR) END
END
Peter Larsson
Helsingborg, Sweden
Bir Hata ve Birkaç Öneri
The transaction log for database 'ceturkdb' is full. To find out why space in the log cannot be reused, see the log_reuse_wait_desc column in sys.databases
Hatalar:
- Hatada database ismi vermek güvenlik nedeniyle sakıncalı
- Database yada programsal hataların üyelere yansıtılması sakıncalı
Öneriler:
- Genel hatalar için error sayfaları düzenlenip kullanıcılara hatayla ilgili genel bilgiler verilebilir. Böylelikle hem hatayı gören kişiler sizi basite almamış olur hem de sisteminiz hakkında hatadan bir şey yakalama imkanı bulmaz.
- SQL Server ile ilgili Auto Shrink yapılabilir yada database boyu kısıtlı ise Transation Log a maximum size verilebilir. Yada tüm bunların yerine gecenin bir saatinde çalışan joblar düzenlenebilir. Bu joblar shrink te yapabilir yada dosya size ı belli bir seviyeye ulaşmışsa e-mail, cep telefonu vb iletişim aracılığıyla yönetici uyarılabilir. Bunu yapmadığınız zaman siz hatayı görene kadar saatler geçebilir sitenizi ziyaret eden ziyaretçiler çoktan sıkılmış ve kaçmış olabilir.
Hatayı bazen dostlar "post" eder, bazen yöneticiyi tanıyan üyeler. Tüm bu ücretsiz kaynaklarınız yoksa bilin ki bu size belli bir "cost" eder. Siz siz olun birileri tarafından hatalarınız için uyarılmayı beklemeyin; hatalarınızdan herkesten önce siz haberdar olun ve hemen müdahale edin. Hatta öyle bir zamanlama ve düzen ile müdahale edin ki kimsenin ruhu duymasın, sesi çıkmasın.
Hatalar hepimizin başına gelebilir fakat hatalardan ders alıp hatanın neresinden dönersek kardır. Siz siz olun hatalardan uzak durun. Hata sizi çok sıkıştırdığında; ha bre size yakınlaşmak istediğinde en fazla onu hata sayfasına yönlendirip hataya haddini bildirin! Hataya haddini bildiremiyorsanız bilin ki hata size haddinizi bildiriyordur.
2008-02-10
CETURK Forum Sorumluları Belirlendi
Merhaba Değerli Arkadaşlar,
Uzun süren bir görüşme trafiğinin ardından nihayet forum sorumlularını belirledim.
Forum Koordinatörlüğü görevini birkaç gün önce bıraktığım bir kısmınızın malumu. Artık malumu olmayanlar da bu vesile ile öğrenmiş oldular. CETURK Forum Koordinatörü iken üzerimde yük olarak duran bu son görevi de yerine getirmek istiyorum. Bu görevde iken
forumlarda beraber çalışmayı düşündüğüm arkadaşlar aşağıdaki gibidir:
Forum Adı | Sorumlu |
ASP | Ali S. KAN |
Genel- Güncel | Aycan AYHAN |
Delphi / Kylix | Bahadır EKİCİ |
Network | Barış İÇEN |
PHP | Bünyamin KOPDUR |
SQL Server | Emre ÇALIŞIR |
Üniversitelerden | Hasan Erdem YANT |
Diğer Programlama Dilleri | Hayriye TANYILDIZ |
Proje Havuzu | Hüseyin Fatih KARAKOÇ |
Diğer .NET Teknolojileri | İbrahim ERSOY |
Windows | Kadir BOZKURTOĞLU |
Visual Basic | Kurtman ÇELİK |
MySQL | Levent MENEKŞE |
Java | Mehmet ÖZCAN |
XML - XHTML | Mehmet Zahir SOLAK |
Pascal | Merve GENCER |
Oyun Programlama | Mesut GÜLER |
Diğer Veritabanları | Mustafa DEMİRBİLEK |
Faydalı Linkler | Mustafa ŞAHİN |
Elektronik / Donanım | Mustafa YAZAR |
Photoshop-PaintshopPro-Fireworks | Mustafa ZENGİN |
VB.NET | Nazmi DUMAN |
HTML/ DHTML CSS Scripts | Nedim ŞAHİN |
Güvenlik - Virüs | Olcay KÜK |
C / C++ | Oya ŞİMŞEK |
CGI / PERL | Ömer GÖK |
3D Modelleme / Animasyon | Özgür AL |
C# | Sadullah KELEŞ |
Yapay Zeka | Sedat GOLGİYAZ |
Veri Madenciliği | Serdar GÖREGEN |
Web Editörleri | Serkan ÖNCE |
Oracle | Tonguç YILMAZ |
Unix / Linux | Tutku DALMAZ |
Flash | Yağmur MERAL |
ASP.NET | Yavuz ÇOŞAR |
Kariyer ve İnsan Kaynakları | Yıldırım ÖZSUBAŞI |
Proje Tanıtımı | Yücel DAĞLAR |
Multimedia | Yüksel Berk YAVUZ |
Algoritma | Zafer YAVUZ |
Şu an Forum Koordinatörlüğünü bıraktığım için bu arkadaşları ilgili forumlara atama yetkisi yeni kurulacak yönetimde olup bu seçtiğim ekibin de yeni yönetimle çalışıp çalışmayacağı kendi şahsi kararlarına bağlıdır.
Sevgi ve saygı ile duyurulur.
.::YASAL UYARI::.
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.