SORU
4 EKİM 2008, CUMARTESİ


Standart Guıd üzerinde Sıralı olmadığından, performans geliştirme nedir?

Birisi bir veritabanı içinde Birincil anahtar olarak kullanıldıĞında hiç Standart Guıd vs Sıralı olmadığından, performansı ölçülebilir mi?

CEVAP
4 EKİM 2008, CUMARTESİ


GUID vs Sıralı GUID

http://stackoverflow.com/questions/45399/advantages-and-disadvantages-of-guid-uuid-database-keys)Özet tablolar, ama, için PK olarak Guıd kullanmak için. bazı performans sorunları var.

f3818d69-2552-40b7-a403-01a6db4552f7

  • Değerleri geniş dağılımları
  • Neredeyse randomically olanlar
  • Dizin kullanımı çok, çok, çok kötü
  • Yaprak çok hareketli
  • Hemen hemen her PK azından olması gerekir olmayan bir kümelenmiş dizin üzerinde
  • Sorun olur hem de Oracle ve SQL Server

C onları oluşturmak için nasıl * kod:

[DllImport("rpcrt4.dll", SetLastError = true)]
static extern int UuidCreateSequential(out Guid guid);

public static Guid SequentialGuid()
{
    const int RPC_S_OK = 0;
    Guid g;
    if (UuidCreateSequential(out g) != RPC_S_OK)
    	return Guid.NewGuid();
    else
    	return g;
}

  • Dizin daha iyi kullanımı
  • Kümelenmiş anahtar kullanım izin (olmak senaryolar NLB) doğrulandı
  • Daha az disk kullanımı
  • Bir performans artışı -25 minimum maliyet

Gerçek hayatta ölçüm: Senaryo:

  • Guıd aşağıdaki örnek, bir saklı SQL Server türleri
  • Guıd CHAR(36), Oracle gibi saklı
  • Ekleme işlemleri, toplanmış bir sürü birlikte tek bir işlemle
  • Ekler bağlı olarak 1 ila 100 dan tablo
  • Bazı tablolar >10 milyon satır

Standart Guıd 10.5sn 54.6 0.26 Sıralı Guıd 4.6sn 87.1 Da 0,12 Oracle sonuçlarıGuıd bir PK ile bir tablo (üzgünüm, farklı aracı test için kullanılır) 1.327.613 EkleStandart Guıd,0.02sn. her ekleme için geçen süre2.861sn. CPU zamanı, toplam31.049sn. geçen Sıralı Guıd,0.00sn. her ekleme için geçen süre1.142sn. CPU zamanı, toplam3.667sn. geçen 6.4milyonlarca olayları bekleyin62.415saniye1.2milyon bekleyin olaylar için11.063saniye.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jared Busch

    Jared Busch

    25 Mayıs 2011
  • MrDevin521

    MrDevin521

    18 Temmuz 2010
  • TechSmartt

    TechSmartt

    29 Aralık 2010