View (
bknz), sanal tablo oluşturmaya yarar, istediğin sonuca göre sanki veritabanında gerçekten öyle bir tablo varmış gibi davranmanı sağlar, performansı ciddi derecede artırır. En basitinden müşterilerin ödenmiş faturalarını sorgulamak istiyorsun diyelim ve bunu birçok yerde kullanıyorsun. Bunun için her seferinde sorgulama yapmak yerine bir view yazıyorsun ve sonrasında sanal tablo ile çalışmaya başlıyorsun.
Function (
bknz), istenilen veri tipinde geri dönüş yapabilen sorgudur. Örneğin 20 yaş üzerindeki kullanıcılarının sayısını istiyorsun. Bunun için function yazabilir, bu function'ı view'da, stored procedure'de kullabilirsin.
Ben şahsen sadece karışık bir sorgu yazıyorsam ve içerisinde birden fazla tablo varsa ve sadece toplam değer, ortalama gibi değerler ile çalışacaksam function yazıyorum. Çünkü tek başına kullanmaktansa direk stored procedure ile daha iyi performans alırsın.
Stored Procedure (
bknz), hemen hemen her zaman, her durumda kullanabilirsin. Veri ekleme, silme, güncelleme gibi basit işlemlerden tut birçok üst düzey işleri de yapabilirsin. Kısaca sql sorgusu çalıştırmana yarar. Sql'in içinde tutulur, bir kez derlenir ve sonra sürekli kullanılır. Ne istersen onu geri verir. Eğer dinamik bir procedure yazmıyorsan daha güvenlidir. Sql Server'ın en güzel olayıdır bana göre.
Özellikle bir orm aracı kullanıyorsan ve ciddi sorgular yapıyorsan orm performans olarak direk çöker, bu gibi durumlarda sp kullanmak en iyi çözümdür.
Index (
bknz), bir tablo üzerinde o tabloya özel bir belirteç üretir ve bu belirteç sayesinde sonuca çok hızlı bir şekilde ulaşmayı sağlar, kısaca daha az veri okuyarak daha hızlı sonuç getirme mantığı. Büyük çaplı projelerde arama sonuçları gibi sorgularda kullanılır. 2 çeşit index tipi vardır, clustered ve nonclustred. Clusted fiziksel olarak veriler index türüne göre alfabetik sıralanır ve bir tabloda bir tane vardır. Nonclustred ise index verinin kendisi değil sadece adresidir (yani veriyi göstermez, verinin nerde olduğunu gösterir) ve sıralama tipi yoktur. Performansı artırır fakat gereksiz indexler ve hatalı kullanımlar performansı ciddi derecede düşürür.