Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
SQL'i program aracılığıyla kullanma tekniklerini tartışmadan önce, SQL deyiminin nasıl işlendiğini tartışmak gerekir. Her teknik bunları farklı zamanlarda gerçekleştirse de, ilgili adımlar üç tekniğin de ortaktır. Aşağıdaki çizimde, bu bölümün geri kalanında ele alınan bir SQL deyiminin işlenmesiyle ilgili adımlar gösterilmektedir.
BIR SQL deyimini işlemek için DBMS aşağıdaki beş adımı gerçekleştirir:
DBMS ilk olarak SQL deyimini ayrıştırıyor. deyimini belirteçler olarak adlandırılan tek tek sözcüklere ayırır, deyiminin geçerli bir fiili ve geçerli yan tümceleri olduğundan emin olur ve bu şekilde devam eder. Bu adımda söz dizimi hataları ve yazım hataları algılanabilir.
DBMS deyimini doğrular. Sistem kataloğundaki ifadeyi kontrol eder. İfadesinde adı geçen tüm tablolar veritabanında var mı? Tüm sütunlar var mı ve sütun adları belirsiz mi? Kullanıcı ifadeyi yürütmek için gerekli yetkilere sahip mi? Bu adımda belirli anlamsal hatalar algılanabilir.
DBMS deyimi için bir erişim planı oluşturur. Erişim planı, deyimini gerçekleştirmek için gereken adımların ikili gösterimidir; yürütülebilir kodun DBMS eşdeğeridir.
DBMS, erişim planını iyileştirir. Erişim planını gerçekleştirmenin çeşitli yollarını keşfeder. Dizin, aramayı hızlandırmak için kullanılabilir mi? DBMS önce Tablo A'ya bir arama koşulu uygulamalı ve ardından B Tablosuna katılmalı mı yoksa birleştirme ile başlayıp arama koşulunu kullanmalıdır? Tablo üzerinden sıralı arama yapmaktan kaçınılabilir veya tablonun bir alt kümesine düşürülebilir mi? Alternatifleri keşfettikten sonra DBMS bunlardan birini seçer.
DBMS, erişim planını çalıştırarak ifadeyi yürütür.
SQL deyimini işlemek için kullanılan adımlar, gerek duydukları veritabanı erişimi miktarına ve aldıkları süreye göre değişir. SQL deyimini ayrıştırmak veritabanına erişim gerektirmez ve çok hızlı bir şekilde yapılabilir. İyileştirme ise çok yoğun CPU kullanan bir işlemdir ve sistem kataloğuna erişim gerektirir. Karmaşık, çok tablolu bir sorgu için iyileştirici aynı sorguyu gerçekleştirmenin binlerce farklı yolunu keşfedebilir. Ancak, sorguyu verimsiz bir şekilde yürütmenin maliyeti genellikle o kadar yüksektir ki, iyileştirme için harcanan süre sorgu yürütme hızının artmasıyla elde edilenden fazladır. Aynı iyileştirilmiş erişim planının yinelenen sorgular gerçekleştirmek için tekrar tekrar kullanılabilmesi durumunda bu daha da önemlidir.