Son iki haftadır aşırı yoğunluktan dolayı pek bir şeyler yazamıyordum. Daha doğrusu doğru dürüst mesai saatleri dışında internete bile giremiyordum. Bugünün tatil olmasını fırsat bilip biraz vakit bulabildim. Bu vesile ile Cumhuriyet bayramınızı da kutluyorum. Son iki haftada ülkemizde hepimizi derinden sarsan şehit haberleri ile üzüldük. Allah tüm şehitlerimizi rahmet eylesin, şehit yakınlarımıza da sabrı cemil ihsan eylesin.
Ateş düştüğü yeri yakar derler ama şehit haberleri hepimizin yüreğini parçalıyor. Benimde çok yakın bir akrabam sınır boyunda Şırnak'ta vatani görevini yapıyor. O yüzden birçok kişinin yaşadığı duyguları ben de her an yaşıyorum. Allah tüm askerlerimizi korusun.
Böyle zamanlarda birlik ve beraberliğimizi koruyup elele vermeliyiz. Dahilde ve hariçte oynanan kirli ve kanlı oyunlara alet olmamalıyız. İçimiz yansa da itidalli davranıp ve akıllı hareket etmeliyiz. Terörün bir amacının da birlik ve beraberliğimizi zedelemeye yönelik olduğunu unutmamalıyız!
Bu süreçte zaman zaman aklı ile değilde hissiyatı ile hareket eden bazı kişilerin terör örgütü ile Kürt kökenli vatandaşlarımızı bir gördüğüne üzülerek şahit olduk. Terör örgütünün asıl maksadı da bu. Eli kirli ve kanlı bazı ülkeler ve kişiler ülkemizde bir Türk-Kürt kavgasının ortaya çıkmasını istiyorlar. Kesinlikle bu tür oyunlara alet olmayalım! Türkiye, üzerindeki tüm renkleri birdir ve bütündür. Ülkemiz üzerinde yaşayan her vatandaşımız dili, dini, ırkı ve mezhebi ne olursa olsun kardeşimizdir, yoldaşımızdır. Birlik, beraberlik ve kardeşliğimizi bozmayalım bozmaya çalışanlara da izin ve fırsat vermeyelim.
#DBA #SQL #Server #Performance #Tuning
2007-10-29
2007-10-17
Partition Table Örneği
/*
2007 yılına ait verilerimizi tablomuzda 5 partiona böleceğiz. Partion Table için sırasıyla şunlar yapılır:
CREATE PARTITION FUNCTION [MonthlyConnPF] (datetime) AS RANGE RIGHT
FOR VALUES ('20070101', '20070401', '20070701', '20071001');
CREATE PARTITION SCHEME MonthlyConnPS AS PARTITION MonthlyConnPF TO (fg01, fg02, fg03, fg04, fg05);
CREATE TABLE [dbo].[ConnDetails]
(
ConnId int IDENTITY,
ConnClient varchar(100),
ConnUser varchar(100),
ConnLocation varchar(100),
ConnEndTime datetime,
ConnUsageInMins int
)
ON MonthlyConnPS(ConnEndTime)
GO
--Her bir file ı oluşturduğumuz filegrouplara ekliyoruz.
Alter Database test
Add File
(
Name = test01,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test01.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg01
Alter Database test
Add File
(
Name = test02,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test02.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg02
Alter Database test
Add File
(
Name = test03,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test03.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg03
Alter Database test
Add File
(
Name = test04,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test04.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg04
Alter Database test
Add File
(
Name = test05,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test05.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg05
--Tablomuza rastgele 100.000 kayıt ekleyelim
insert into [ConnDetails]
(ConnClient, ConnUser, ConnLocation, ConnEndTime, ConnUsageInMins)
VALUES (mguzel, 'Istanbul', 'SD', dateadd(dd, convert(int, Rand()*365), '2006-1-1'), convert(int, Rand()*2e9))
go 100000
--2 nolu partionımızı sorgulayalım
Select * from dbo.conndetails Where $PARTITION.MonthlyConnPF(ConnEndTime) = 2 order by connendtime
Select * from Sys.Partitions where object_id = object_id('test.dbo.conndetails')
Select object_name(object_id), partition_number, rows from Sys.Partitions where object_id = object_id('test.dbo.ConnDetails')
Select $partition.MonthlyConnPF(ConnEndTime) As 'Partition Number', count(*) As 'Rows' From dbo.ConnDetails Group by $partition.MonthlyConnPF(ConnEndTime) Order by 'Partition Number'
Select *, $partition.MonthlyConnPF(ConnEndTime) AS 'Partition Number' From dbo.ConnDetails Order by 'Partition Number', ConnEndTime
Select * from sys.filegroups
2007 yılına ait verilerimizi tablomuzda 5 partiona böleceğiz. Partion Table için sırasıyla şunlar yapılır:
- Partion Function oluşturulur,
- Partion Scheme oluşturulur
- File Gruplar oluşturulur.
*/
CREATE PARTITION FUNCTION [MonthlyConnPF] (datetime) AS RANGE RIGHT
FOR VALUES ('20070101', '20070401', '20070701', '20071001');
CREATE PARTITION SCHEME MonthlyConnPS AS PARTITION MonthlyConnPF TO (fg01, fg02, fg03, fg04, fg05);
CREATE TABLE [dbo].[ConnDetails]
(
ConnId int IDENTITY,
ConnClient varchar(100),
ConnUser varchar(100),
ConnLocation varchar(100),
ConnEndTime datetime,
ConnUsageInMins int
)
ON MonthlyConnPS(ConnEndTime)
GO
--Her bir file ı oluşturduğumuz filegrouplara ekliyoruz.
Alter Database test
Add File
(
Name = test01,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test01.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg01
Alter Database test
Add File
(
Name = test02,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test02.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg02
Alter Database test
Add File
(
Name = test03,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test03.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg03
Alter Database test
Add File
(
Name = test04,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test04.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg04
Alter Database test
Add File
(
Name = test05,
Filename = 'c:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test05.ndf',
Size = 1MB,
Filegrowth = 1MB
)
To FileGroup fg05
--Tablomuza rastgele 100.000 kayıt ekleyelim
insert into [ConnDetails]
(ConnClient, ConnUser, ConnLocation, ConnEndTime, ConnUsageInMins)
VALUES (mguzel, 'Istanbul', 'SD', dateadd(dd, convert(int, Rand()*365), '2006-1-1'), convert(int, Rand()*2e9))
go 100000
--2 nolu partionımızı sorgulayalım
Select * from dbo.conndetails Where $PARTITION.MonthlyConnPF(ConnEndTime) = 2 order by connendtime
Select * from Sys.Partitions where object_id = object_id('test.dbo.conndetails')
Select object_name(object_id), partition_number, rows from Sys.Partitions where object_id = object_id('test.dbo.ConnDetails')
Select $partition.MonthlyConnPF(ConnEndTime) As 'Partition Number', count(*) As 'Rows' From dbo.ConnDetails Group by $partition.MonthlyConnPF(ConnEndTime) Order by 'Partition Number'
Select *, $partition.MonthlyConnPF(ConnEndTime) AS 'Partition Number' From dbo.ConnDetails Order by 'Partition Number', ConnEndTime
Select * from sys.filegroups
Java ile Kurumsal Mimariler
20 Ekim 2007 cumartesi günü Sibnet, IBM ve CETURK birlikte seminer düzenleyecek. Ben Cumartesi günü hastanede olacağım. Hastane işlemleri erken biterse seminere katılmayı düşünüyorum. En kötü ihtimalle seminer bittiğinde 5-10 dakika görüşmek isteyen arkadaşlarla ayaküstü sohbet etmeyi umuyorum. Seminerde görüşmek dileğiyle.
Etkinlik Türü : Seminer
Hedef Kitle : Java ve IBM Yazılım Ürünleri ile ilgilenenler.
Kontenjan : 250 kişi
Etkinlik Tarihi ve Saati : 20.10.2007 -- 13.30 - 16.00
Eğitimi Veren : IBM & SIBNET
Etkinlik Yeri : Logosoft / Casper Binası
Daha detaylı bilgi ve kayıt işlemlerine CETURK'ten ulaşabilirsiniz.
Etkinlik Türü : Seminer
Hedef Kitle : Java ve IBM Yazılım Ürünleri ile ilgilenenler.
Kontenjan : 250 kişi
Etkinlik Tarihi ve Saati : 20.10.2007 -- 13.30 - 16.00
Eğitimi Veren : IBM & SIBNET
Etkinlik Yeri : Logosoft / Casper Binası
Daha detaylı bilgi ve kayıt işlemlerine CETURK'ten ulaşabilirsiniz.
2007-10-05
CeBIT'teyim
Şirketteki arkadaşlarla birlikte birazdan CeBIT Beilişim eurasia'ya gideceğiz. Saat 11:00-13:00 arası CeBIT'te olmayı planlıyorum. Genellikle CeBIT te eski dostlarla ayaküstü sohbet etme imkanı da buluyorum. Bakalım bu sene eski olup ta eskimeyen hangi arkadaşlarla görüşeceğim?
CeBIT'e gitmek isteyenler için gidiş yönleri. Kaynak:Zaman
CeBIT'e gitmek isteyenler için gidiş yönleri. Kaynak:Zaman
2007-10-03
Cümledeki Gereksiz Boşlukları Giderme
Bir cümle içindeki gereksiz ve fazla olarak girilen boşlukları tek boşluğa indirgemek metin ile uğraşan çoğu kişinin ihtiyacı olan bir şeydir. Kelimeler arasındaki çoklu boşluklar metni bozar. Bunu düzeltmek için C#'ta ilk aklımıza gelecek komutlar trim(), replace()'dir. Ancak trim sadece metnin başındaki ve sonundaki boşlukları atar; replace ile de bir döngü ile ancak boşlukları tek boşluğa donüştürene kadar tekrarlamak gerekecek. Bir metindeki gereksiz boşlukları atacak kodu C# ile aşağıdaki gibi yazdım(Orhan Aykut hocamın optimizasyon ile ilgili elinin değmesiyle:)). Umarım işinize yarar.
Sonuç çıktısı: "Günlüğümdeki yazıları nasıl buluyorsunuz?" olur.string cumle = " Günlüğümdeki yazıları nasıl buluyorsunuz? ";
char[] c = { ' ' };
string[] dizi = cumle.Split(c, StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < dizi.Length; i++){dizi[i] = dizi[i].Trim();
}
MessageBox.Show(string.Join(" ", dizi));
Constraints(Kısıtlamalar)
Tablolarımızda zaman zaman bir alanın sadece belirli kelimelerden yada belirli bir uzunlukta olmasını veyahut çeşitli kısıtlamaların olmasını isteriz. Bunun için SQL Server veritabanında Constraint'leri kullanırız. SQL Server 2005 te 6 çeşit Constraint vardır. Bunlar:
Yazım Şekli:
ALTER TABLE TabloAdi
ADD CONSTRAINT [ConstraintAdi]
CHECK (AlanAdi='EVET' or AlanAdi='HAYIR')
Örnek: Bir öğrencinin mezuniyet durumunu inceleyelim ve girilecek verilerin sadece 'EVET' veya 'HAYIR' olmasını kısıtlayalım.
ALTER TABLE Ogrenci
ADD CONSTRAINT [ConsMezuniyet]
CHECK (Mezunmu='EVET' or Mezunmu='HAYIR')
- PRIMARY KEY Constraints
- FOREIGN KEY Constraints
- UNIQUE Constraints
- CHECK Constraints
- DEFAULT Definitions
- Allowing Null Values
Yazım Şekli:
ALTER TABLE TabloAdi
ADD CONSTRAINT [ConstraintAdi]
CHECK (AlanAdi='EVET' or AlanAdi='HAYIR')
Örnek: Bir öğrencinin mezuniyet durumunu inceleyelim ve girilecek verilerin sadece 'EVET' veya 'HAYIR' olmasını kısıtlayalım.
ALTER TABLE Ogrenci
ADD CONSTRAINT [ConsMezuniyet]
CHECK (Mezunmu='EVET' or Mezunmu='HAYIR')
Kaydol:
Kayıtlar (Atom)
.::YASAL UYARI::.
©2004-2024 Mehmet GÜZEL, www.mehmetguzel.net
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.
Site içeriği kaynak gösterilmek koşuluyla yayınlanabilir. Yazılan yazı ve yorumlar sadece yazı ve yorum sahiplerini bağlar.