Yabancı Anahtar sorgu performansını artırmak mı? | Netgez.com
SORU
3 ŞUBAT 2009, Salı


Yabancı Anahtar sorgu performansını artırmak mı?

2 tablo, Ürünleri ve ProductCategories yoktur sanırım. Her iki tablo Categoryıd ilişki var. Ve bu sorguyu.

select p.ProductId, p.Name, c.CategoryId, c.Name AS Category
from Products p inner join ProductCategories c on p.CategoryId = c.CategoryId
where c.CategoryId = 1;

Yürütme planı oluşturmak, masa ProductCategories beklenti olarak küme dizin arama yapar. Ama masa Ürünleri için, beni şüphe yapmak küme dizin tarama gerçekleştirir. Neden FK sorgu performansını artırmak yardımcı olmuyor?

Ürünler üzerinde dizin oluşturmak için var.Kategorino. Yürütme planı tekrar oluşturduğumda, her iki tablo dizin arama gerçekleştirmek. Alt ve tahmini maliyeti çok azalır.

Benim sorular şunlardır:

  1. FK ilişki kısıtlaması yardımcı olur yanında, başka bir yararı var mı? Sorgu performansını artırmak mı?

  2. Tüm FK sütunlar üzerinde dizin oluşturmak gerekir (Ürünleri çok seviliyor.Kategorino) tüm tabloları?

CEVAP
3 ŞUBAT 2009, Salı


Yabancı Anahtarlar tutarlılığına bir aracı değil, bir performans aracı. En azından SQL Server, bir FK oluşturulması ilişkili bir dizin oluşturmaz, ve FK alanları dizinleri kez bak artırmak için oluşturmanız gerekir.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • LimeFire

    LimeFire

    2 ÅžUBAT 2012
  • MagicofRahat

    MagicofRahat

    13 Temmuz 2007