2007-10-29

Gündeme Dair

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.

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:
  1. Partion Function oluşturulur,
  2. Partion Scheme oluşturulur
  3. 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.

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

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.

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));

Sonuç çıktısı: "Günlüğümdeki yazıları nasıl buluyorsunuz?" olur.

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:
  1. PRIMARY KEY Constraints
  2. FOREIGN KEY Constraints
  3. UNIQUE Constraints
  4. CHECK Constraints
  5. DEFAULT Definitions
  6. Allowing Null Values
Ben burada CHECK Contraints üzerinde duracağım. CHECK Constraints ile bir alana belirli bir limit değerin verilmesi veya sadece belirli karakter/kelimelerin girilmesinde kullanılır.

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')

.::YASAL UYARI::.

©2004-2023 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.