Cuma , 23 Haziran 2017

Etiket Arşivi: tsql

SQL Server Check Constraint’lerin Performansa Etkisi

SQL Server’da veri bütünlüğünü sağlamak için check Constraint’leri çok sık kullanıyoruz. Yoğun kullanılan Check Constraint objelerinin özellikle büyük yapılarda performansa etkisi olup olmadığı çok sık soruluyor. Video’da bu konuyu demolarla detaylı bir şekilde ele aldık.   Devamını Oku »

Isnull fonksiyonunda Bug mı var?

ISNULL fonksiyonu verilen bir değerin NULL olup olmadığını kontrol edip eğer NULL ise verilen değer yerine belirtilen alternatif değeri döndüren bir fonksiyondur. Gelen kullanımı aşağıdaki gibidir. ISNULL ( check_expression , replacement_value ) Fonksiyonun aldığı ilk parametre olan check_expression NULL olup olmadığı kontrol edilecek ifadedir. İkinci parametre olan replacement_value  ise eğer ilk değer Null ise onun yerine döndürülecek değeri belirtmektedir. Örneğin AdventureWorks veritabanındaki Production.Product tablosunda Color değerini ... Devamını Oku »

TSQL- EXCEPT ve INTERSECT Komutlari

Except Except operatörü de iki farklı sorgu sonucunun karşılaştırırken intersect operatöründen farklı olarak sadece ilk sonuç setinde olup ikici sorgu sonucunda olmayan kayıtları listelememizi sağlamaktadır. Except operatörünü kümeleri kullanarak şematize edecek olursak aşağıdaki gibi bir ifade ile karşılaşırız. Except operatörü iki farklı sorgudan dönen sonuç kümelerini karşılaştırarak sadece ilk belirtilen sorgu sonucunda olan fakat ikinci sorgu sonucunda olmayan kayıtları listeler. ... Devamını Oku »

SQL Serverda Union veya Or Operatörünü Kullanmak

SQL Serverda bir sorgu yazarken her ne kadar sorgunun doğru sonucu getirmesi önemli olsa bile bunun yanında sorgularımızında performanslı bir şekilde çalışmasını isteriz. Küçük boyutlu veritabanlarında pek hissedilmese bile veri boyutunun fazla olduğu sistemlerde sorgu yazarken her ihtimal iyi değerlendirilip sorgular optimize edilmelidir. Sorgu optimizasyonu yapılırken ilk incelenen ilgili sorgunun Execution Planıdır. Bildiğiniz gibi Execution Plan o sorgunun çalıştırılması sırasında ... Devamını Oku »

T-SQL ile Gruplanan Değerlerin Birleştirilmesi

Verilerimiz üzerinde gruplama işlemi yaparken Group by ifadesini kullanıyoruz. Group by ile verilerimizi gruplayabildiğimiz gibi aynı zamanda Sum gibi gruplama fonksiyonlarını kullanarak gruplama yaptığımız seviyedeki verilerinde toplamlarını alabiliriz. Fakat Sum fonksiyonu ile sadece numerik verilerin toplandığını biliyoruz. Bazen gruplama yaptığımızda alanlar dışında kalan numerik ya da numerik olmayan alanların toplanmasını değil birleştirilmesini isteriz. Örneğin bir tabloda öğrencilerin numaraları ve aldıkları ... Devamını Oku »

Farklı Windows kullanıcı ile SSMS Çalıştırma

SSMS(SQL Server Management Stdio) aracını kullanarak Windows Authentication ile SQL Servera bağlanmak istediğimizde kullanıcı seçmeden o an Windows’a login olmuş kullanıcının bilgileri ve yetkileriyle bağlanmamız gerekir. Örneğin varsayılan halinde SSMS aracını açıp Windows Authentication seçtiğimizde karşımıza aşağıdaki gibi bir ekran gelecektir. Yukardaki ekranda gördüğümüz gibi Windows Authentication seçtiğimiz zaman kullanıcı adı ve şifremizi değiştiremiyoruz. Fakat bazı durumlarda Windows’a login olmuş ... Devamını Oku »

Olusturdugumuz Stored Procedure’lere Tüm Veritabanlarindan Erisebilmek

SQL Serverda Stored Procedure, fonksiyon gibi objeler veritabanı seviyesinde olup sadece oluşturulduğu veritabanında kullanılabilirler. Eğer farklı bir veritabanına bağlı iken başka bir veritabanındaki objeye erişmek istersek ilgili objenin adının başına veritabanı adını da eklememiz gerekiyor. Aksi takdirde “Invalid object name ‘%.*ls’” hatasını alırız. Fakat özellikle SQL Serverın built-in sistem stored procedure ve fonksiyonlarını çalıştırırken veritabanı adı vermeksizin herhangi bir veritabnından ... Devamını Oku »

SQL Server Excel Linked Server Tanımlama

Veri ile uğraşan insanların Excel kullanmaması kaçınılmazdır. Excel’den veri okumak veya Excel’e veri yazmak gibi işlemler büyük boyutlarda yapıldığında Integration servis paketleri kullanılsa da bazen işin içine hiç Integration servisi karıştırmadan Excel’deki verilerimizi SQL Serverdan sorgulama ve gerektiğinde bu veriler üzerinden işlem yapma ihtiyacı duyabiliriz. Sadece Excel değil farklı veri kaynaklarına SQL Server üzerinde erişip verileri sorgulamak için en bilindik ... Devamını Oku »

Stored Procedure’lerin Çağrılma Sayısının Bulunması

SQL Server üzerinde optimizasyon çalışması yapılmak istendiğinde en önemli adımlardan bir tanesi de çok fazla çağrılan Stored Procedure ve Function gibi SQL Server objelerinin bulunup bunlar üzerinde optimizasyon çalışması yapılmasıdır.Aslında doğrudan bir Stored Procedure’un kaç defa çağrıldığı bilgisi SQL Server’da tutulmamasına rağmen bildiğiniz gibi Stored Procedure ve Function gibi objelerin Execution planları SQL serverda saklanmaktadır. Bu durumda istediğimiz bir Stored ... Devamını Oku »

Trigger’larımızda COLUMNS_UPDATED() Fonksiyonun Kullanımı

Update işlemleri için bir trigger yazdığımızda UPDATE() fonksiyonunu kullanarak bir kolonun değerinin değişip değişmediğini yani ilgili kolonun update olup olmadığını anlayabiliyorduk. Çünkü Update() fonksiyonu parametre olarak bir kolon adı alıyor ve triggerımızı tetikleyen işlemde o kolonun değerinin değişip değişmediğini kontrol ederek eğer değer değişmişse True değişmemişse False değerini döndürüyordu. Fakat bazı durumlarda sadece bir kolonun değerini değil aynı andan birden ... Devamını Oku »