SQL - Veritabanı Ayarı
Veritabanı Uzmanı veya uzman Veritabanı Yöneticisi olmak zaman alır. Bunların hepsi, çeşitli veritabanı tasarımlarında ve iyi eğitimlerde çok fazla deneyim ile birlikte gelir.
Ancak aşağıdaki liste, yeni başlayanlar için güzel bir veritabanı performansına sahip olmak için yardımcı olabilir -
Bu eğiticide RDBMS Kavramları bölümünde açıklanan 3BNF veritabanı tasarımını kullanın.
Sayılar ve karakterler farklı şekilde karşılaştırıldığı ve performans düşüşüne yol açtığı için sayıdan karaktere dönüşümlerden kaçının.
SELECT deyimini kullanırken, yalnızca gerekli bilgileri alın ve SELECT sorgularınızda * kullanmaktan kaçının çünkü bu, sistemi gereksiz yere yükleyecektir.
Sık arama işlemleri yaptığınız tüm tablolarda indekslerinizi dikkatlice oluşturun. Daha az sayıda arama işlemine ve daha fazla ekleme ve güncelleme işlemine sahip olduğunuz tablolarda indekslemekten kaçının.
WHERE yan tümcesindeki sütunların kendileriyle ilişkili bir dizini olmadığında tam tablo taraması gerçekleşir. Bir SQL ifadesinin WHERE yan tümcesinde koşullar olarak kullanılan sütunlarda bir dizin oluşturarak tam tablo taramasından kaçınabilirsiniz.
Gerçek sayılar ve tarih / saat değerleri olan eşitlik operatörlerine çok dikkat edin. Bunların her ikisinin de gözle görülemeyecek kadar küçük farklılıkları olabilir, ancak tam eşlemeyi imkansız kılar ve böylece sorgularınızın satırların geri gelmesini engeller.
Kalıp eşleştirmeyi mantıklı bir şekilde kullanın. LIKE COL% geçerli bir WHERE koşuludur ve döndürülen kümeyi yalnızca COL dizesi ile başlayan verilere sahip kayıtlara indirger. Bununla birlikte, COL% Y,% Y etkin bir şekilde değerlendirilemediği için döndürülen sonuçları daha fazla azaltmaz. Değerlendirmeyi yapma çabası, dikkate alınamayacak kadar büyük. Bu durumda COL% kullanılır, ancak% Y atılır. Aynı nedenle, önde gelen bir% COL joker karakteri, filtrenin tamamının kullanılmasını etkin bir şekilde engeller.
Tablolarınızı hızlı veri işlemeyi destekleyecek şekilde tasarlayıp tasarlamadığınızı ve sorguyu optimum şekilde yazıp yazmadığınızı keşfetmek için sorguların (ve alt sorguların) yapısını inceleyerek SQL sorgularınıza ince ayar yapın ve DBMS'nizin verileri verimli bir şekilde işlemesine izin verin .
Düzenli olarak yürütülen sorgular için prosedürleri kullanmayı deneyin. Prosedür, potansiyel olarak büyük bir SQL ifadeleri grubudur. Prosedürler, veritabanı motoru tarafından derlenir ve ardından yürütülür. Bir SQL ifadesinin aksine, veritabanı motorunun yürütülmeden önce prosedürü optimize etmesi gerekmez.
Mümkünse bir sorguda mantıksal işleci VEYA kullanmaktan kaçının. VEYA önemli boyuttaki bir tabloya karşı hemen hemen her sorguyu kaçınılmaz olarak yavaşlatır.
Dizinleri bırakarak toplu veri yüklemelerini optimize edebilirsiniz. Binlerce satır içeren geçmiş tablosunu hayal edin. Bu geçmiş tablosunun da bir veya daha fazla dizini olması muhtemeldir. Bir dizin düşündüğünüzde, normalde daha hızlı tablo erişimini düşünürsünüz, ancak toplu yüklemeler söz konusu olduğunda, dizin (ler) i düşürerek fayda sağlayabilirsiniz.
Toplu işlemleri gerçekleştirirken, her kayıt oluşturduktan sonra bunları oluşturmak yerine, makul sayıda kayıt oluşturduktan sonra COMMIT gerçekleştirin.
Haftalık bir rutin geliştirmek anlamına gelse bile, veritabanını düzenli olarak birleştirmeyi planlayın.
Yerleşik Ayarlama Araçları
Oracle, SQL deyimi performansını yönetmek için birçok araca sahiptir, ancak aralarında ikisi çok popülerdir. Bu iki araç -
Explain plan - araç, SQL deyimi yürütüldüğünde alınacak erişim yolunu tanımlar.
tkprof - SQL deyimi işlemenin her aşamasında geçen süreye göre performansı ölçer.
Oracle'da bir sorgunun geçen süresini basitçe ölçmek istiyorsanız, SQL * Plus SET TIMING ON komutunu kullanabilirsiniz.
Yukarıda belirtilen araçlar ve veritabanını birleştirmek hakkında daha fazla ayrıntı için RDBMS belgelerinize bakın.