Uzmanına Sor

Archive for the ‘Microsoft SQL Server’ Category

SQL Server and Read-Only Databases

without comments

SQL Server ve Read-Only Veritabanları
Kullanıcıların bir veritabanının içeriğini düzenlemesini engellemek isteyebileceğimiz pek çok durum olabilir. Örneğin, veritabanı sadece raporlama amacıyla kullanılıyorsa read-only modda tutmak oldukça mantıklı bir tercih olabilir. Bununla birlikte, bazı restore ve attach işlemlerinden sonra pek çok nedenden dolayı veritabanlarını read-only modda görebiliriz.

Bir veritabanını read-only moda aldığımızda, kullanıcılar veritabanındaki veriler üzerinde hiç bir değişiklik gerçekleştiremez. Auto shrink, auto statistics ve veritabanındaki sorunları düzeltmek için kullanılan dbcc komutları çalışmaz. Diğer taraftan, SQL Server veritabanında üzerinde hiç bir güncelleme işlemi yapılmayacağı için lockinge izin vermez. Bu da kısıtlı bir performans artışı anlamına gelecektir.

Bir veritabanını read-only moda almak için aşağıdaki komutu kullanabilirsiniz;
ALTER DATABASE dbName SET READ_ONLY

Read-only moddaki bir veritabanını read_write moda almak içinse aşağıdaki komutu kullanabilirsiniz;
ALTER DATABASE dbName SET READ_WRITE

Written by Kadir Sümerkent

May 27th, 2010 at 12:56 pm

Sql Server da Bulk Insert nedir?

without comments

Kısacası metin dosyalarının SQL Server’a aktarmanın en kolay yoludur. Bunu yapmanız için bilmeniz gereken ufak tefek ayrıntıdan başka bir şey yok.

Sıralamak gerekirse,

  • Metin dosyasının uzantısını
  • Kolonlar birbirinden hangi karakterle ayrılıyor
  • Satır sonları nasıl belirlenmiş bilmemiz yeterli.

Bulk Insert komutu ise,

BULK INSERT TableName FROM  ‘Path(DosyaYolu)’ WITH (FIELDTEMINATOR = ‘,’)

FIELDTERMINATOR – ile metin dosyamızda bulunan kayıtların kolonlara ayrılmak istenildiğinde hangi karakterle ayırma işlemi yapılacak olduğunu belirtliğimiz yerdir.

Ufak bir örnek yaparak deneme yapacak olursak bunun için hemen bir tablo oluşturalım.

CREATE TABLE User

(

id int,

Name nvarchar(50),

LastName  nvarchar(50),

Age int,

City nvarchar(50),

)

Sql tablomuzuda oluşturduk ya metin dosyamız??? Onuda basit bir şekilde yazıyorum hemen.

Mesela buda C klasörünün altında Users.txt metin dosyamız olsun.

1$Ali$Alioğlu$18$Istanbul

2$Veli$Velioğlu$19$Bursa

3$Ahmet$Ahmetoğlu$20$malatya

4$Mehmet$Mehmetoğlu$21$Edirne

BULK INSERT User FROM  ‘C:\Users.txt’ WITH (FIELDTEMINATOR = ‘$’)

Dolar ($) kullandım. Çünkü text içerisinde kullanılabilecek karakterden uzak durdum. İşimi garantiye aldım.

Bu şekilde hdd mizde bulunan bir txt dosyasını SQL de oluşturduğumuz bir tabloya taşımız bulunuyoruz.

Ama burada önemli nokta taşıma esnasında türkçe karakter sorunu yaşıyor olacağımızdır. Bunun çözümüde çok basit Bulk Insert komutumuza CODEPAGE = ‘1254′ eklememiz yeterli olucak.

Şu şekilde kullanıcaz yani

BULK INSERT User FROM  ‘C:\Users.txt’ WITH (FIELDTEMINATOR = ‘$’ , CODEPAGE = ‘1254′ )

Bu işlemleri sırasıyla yaptık ama birden karşımızda bir hata belirdi.

You do not have permission to use the bulk load statement.

Bu durum Bulk Insert yetkinizin olmamasından kaynaklanıyor. sysadmin veya bulkadmin rollerinize sahip olursanız bu hatayıda basitçe geçiceksiniz.

Written by Emrah Eroğlu

January 4th, 2010 at 11:02 am

Posted in Microsoft SQL Server

Tagged with ,

What is SSIS? Ease of Use. Sql Server Integration Services nedir? Bolum / Part 1

without comments

Merhaba arkadaslar, bu makalede size SSIS (Sql Server Integration Services) hakkinda bilgiler vericem. Gunumuz sistemlerinde Veri / Data kelimesi gerek kurumsal gerek bireysel cok buyuk bir onem tasimaktadir. Peki biz bu verileri datalari ne sekillerde tutariz? sorusuna ornek olarak bircok sey soyleyebiliriz. Bana gore gelmis gecmis en basarili program Windows icindeki NOTEPAD’dir. Notepad bir veri saklama aracidir. Hicbor komplike yapi kullanmadan verilerinizi hic bir kayiba ugramadan saklayabilirsiniz. Bahsettigim bu komplike yapilarda son derece basarili yine Notepad’in yaptigi isi yapan araclardir. Bunlara ornek verecek olursak, Microsoft urunlerinden Excel, Access, ve gunumuzde en yaygin veri saklama araci olan SQL Server, ve bunlar gibi bir cok arac. Simdi soyle birsey dusunun, sisteminizde bu araclarin bircogunu kullanaraktan veriler sakliyorsunuz. Excelde, kisi bilgileri tutuyorsunuz. Ayni yapiya sahip olan bilgiler SQL Server’da da tutabiliyorsunuz. Peki sizden soyle birsey istense, exceldeki ayni bilgileri almaniz ve SQL server’a yazmaniz, veya Access veri tabanindan bilgileri alip SQL Server veya Excel’e yazmaniz. Iste bu noktada isi kolaylastirmak adina SSIS devreye giriyor. SSIS kullanarak Access’den SQL’e, Access’den Excel’e, herhangi bir text dosyasindan SQL veya Access’e… Kisaca ozetlemek gerekirse herhangi bir veritabanindan bir baska veri tabanina istediginiz sartlarda veri almak yada vermek islemini kolaylikla gerceklestirebilirsiniz. Isi abartmak gerekirse, SSIS toollari sayesinde yarattiginiz bir veri dosyasini, ornegin bir excel’i sikistirabilir, e-mail ile yollayabilir, veya ftp sunusuna bile gonderebilirsiniz. Ikinci kisimda bu yukarida anlattiklarim hakkinda hemen ornek yapmaya baslayacagiz.

Written by Serkan Hekimoğlu

December 30th, 2009 at 11:37 pm

Posted in Microsoft SQL Server

Tagged with , ,

String or binary data would be truncated

without comments

SQL’e Insert işlemi sırasında alınan bu hatanın sebebi DB’ye yapmak istediğiniz bir kaydın boyutlarının tablo boyutları ile uyuşmaması demektir. Örneğin: değeri nvarchar(10) olan bir kolona 10 karakterden fazla bir string atamak isterseniz bu sorun ile karşılaşırsınız.

Çözüm : DB’deki kolonun alacağı max değeri artırın, yada daha küçük bir değer girin.

Written by Serkan Hekimoğlu

December 28th, 2009 at 9:45 pm