Aracılığıyla paylaş


SQL Server 2008'de veritabanı altyapısı özellikleri davranışı değişiklikleri

Bu konu, davranış değişiklikleri açıklar Database Engine. Davranış değişiklikleri özellikleri çalışmıyor veya içinde etkileşimli nasıl etkiler... SQL Server 2008 önceki sürümleriyle karşılaştırıldığında gibi SQL Server.

Erişim denetimi önbellek seçenekleri

Içinde SQL Server 2005, access check result cache iç yapısı, izleme bayraklarını kullanarak dışında yapılandırılamaz. Içinde SQL Server 2008, kullanabileceğiniz access check cache Bu yapısını değiştirmek için seçenekler sağlar. Daha fazla bilgi için bkz:erişim denetimi önbellek seçenekleri.

tam metin araması

SQL Server 2008 Yeni bir tam metin araması mimarisi tanıtır.tam metin araması alt yapısı şimdi tam olarak tümleşiktir SQL Server Database Engine, yerine, ayrı bir hizmet. Tümleştirme, daha iyi bir tam metin araması yönetilebilirlik, ölçeklenebilirlik, güvenlik ve daha önceki sürümlerinde, performans sağlar. SQL Server. Tam metin aramasını arasındaki başlıca farklar hakkında daha fazla bilgi için SQL Server 2005 ve SQL Server 2008iyi olarak teknik makale, bu yeni tümleşik tam metin araması altyapısı ile ilişkili yöntemler Bkz: "SQL Server 2008 tam metin araması: Iç ve geliştirmeler"MSDN'de.

Bağlantılı sunucular

SQL Server 2008 hareket semantik karşı bir geridöngü yürütmek, INSERT... olarak yürütmek ekstrelerinin değiştirir bağlantılı sunucu.Içinde SQL Server 2005, bu senaryonun desteklenmez ve hataya neden olur. Içinde SQL Server 2008, bağlantı etkin birden çok etkin bir sonuç kümesi (MARS) varsa, INSERT... olarak yürütmek deyim geridöngü bağlantılı bir sunucuda çalıştırabilirsiniz. MARS bağlantıda etkin olduğunda aynı davranıştır SQL Server 2005.

Parallelism

bölümlenmiş tablo, sorgu işleme ve Parallelism

Içinde SQL Server 2008, bölümlenmiş tablo Tasarım geliştirmeler, sorguyu daha da bölümlenmiş tablo üzerinde işleme sırasında daha iyi parallelism kolaylaştırır. SQL Server 2005. Bu tasarım, by-product, yalnızca iki yönlü birleştirmeler collocated.Sorgu planları için iki yönlü collocated birleşimlerde SQL Server 2008 aynı arama SQL Server 2005 ve performans maddelerdeki SQL Server 2005. Hizalanmış bölme ile ek bir tablo birleştirmek eklediyseniz, farklı bir plan, üçüncü bir tablo ile bir karma birleştirmek arkasından iki yönlü bir collocated birleştirmek gibi seçili durumda olur.Iki tablo arasında collocated birleştirmeler olağandışı; collocated birleştirmeler parallelism geliştirmeleri yararlanabilmenizi. SQL Server 2008. Ancak, bir sorgunuz varsa SQL Server 2005 üç-(veya daha fazla) gerçekleştirdiği şekilde collocated birleştirmek, sorgu daha yavaş çalışmaya başlayabilir olduğunu mümkündür SQL Server 2008 bellek miktarını tabloların boyutuna küçükse. Bu durumda performansını arttırmanın yolları kullanılabilir bellek miktarını artırmak ve böylece sonuçlar birleştirme önce tek tek bölümleri ayrı olarak birleştirilen sorgu re-writing içerir.Collocated birleşimler hakkında ek bilgi için bkz: Sorgu bölümlendirilmiş tablolar ve dizinler üzerinde geliştirmeler işleme.

yıldız birleşimik ve Parallelism

SQL Server karma birleştirmeler ve bit eşlem süzgeçlerini kullanan yıldız birleşim sorgularını işlemek için bir yeni iyileştirme vardır.Sorgu büyük miktarda olgu tablolar için bir yıldız şemasındaki boyut tablolarından birleştirme alanından veri işlerken, yeni bir en iyi duruma getirme işlemini kullanarak bir sorgu planı çok daha hızlı çalışabilir.

Bunlar yıldızı sığıyorsa, yeni bir sorgu planını varolan sorgularınızı görebileceğiniz birleştirmek deseni.sorgu iyileştiricisi Bu plan, sorgu performansını artırır, tahminler belirttiğinizde seçer.Maliyet tahmini kullanılan istatistikleri yanlış, ancak sorgu iyileştiricisi yıldızı tercih edebilirsiniz birleştirmek farklı bir planı daha hızlı için en iyi duruma getirme.

If the max degree of parallelism yapılandırma option or the MAXDOP index option is küme to 1, the sorgu iyileştiricisi will not use the star birleştirmek optimization and you will not experience the benefits provided by the new star birleştirmek optimization.Sorgu yürütme sistemi yalnızca iş parçacığı parçacığının paralel bir planı ile en iyi duruma getirilmiş bir sorgu gönderir, bazı bit eşlem süzgeçleri, bir bit eşlem birden çok süzgeç yıldız birleşimi planından kaldırılmış olabilir.Bu değişiklik yürütme yavaşlatabilir birden fazla, 2 iş parçacıkları için 1 iş parçacığı, örneğin geçmek zaman bekleniyordu.

yıldız birleşimik yalnızca kuruluş, Developer ve deneme sürümlerini kullanılabilir en iyi duruma getirme SQL Server. Bit eşlem süzme hakkında daha fazla bilgi için bkz: Bit eşlem süzme yoluyla veri ambar sorgu performansı en iyi duruma getirme. Bit eşlem süzgeç içeren bir sorgu planları yorumlama hakkında daha fazla bilgi için bkz: Bit eşlem süzgeçleri içeren planları yürütme yorumlama. yıldız birleşimi en iyi duruma getirme hakkında daha fazla bilgi için TechNet Magazine makale, bkz: "Performans verileri ambar Query".

Birkaç dış satır Parallelism

SQL Server 2008 dış birleştirmek kenarını yalnızca birkaç satır varsa, iç içe geçmiş bir döngü birleştirmeler için parallelism kolaylaştırır.Içinde SQL Server 2005, birden çok iş parçacığı varsa, her iş parçacığı bir sayfa satır birleştirmek dış tarafını tahsis edilir. Yalnızca birkaç satır varsa, bunlar aynı sayfada olması olasıdır.In such cases, only one thread is employed and the potential benefits of parallelism are lost.SQL Server 2008 recognizes such cases and introduces an exchange operator that allocates one row per thread so that all available CPUs are employed.Artırılmış parallelism CPU tüketimi ile karşılaştırıldığında olarak geçici olarak artırır anlamına gelir. SQL Server 2005, ancak sorgu yürütme işlemi daha hızlı olacaktır. Bu yeni davranış, yalnızca dış satır sayısını küçükse ve sorgu maliyetini bir ek parallelism üzere yeterli büyüklükte olmasını tahmini görülür.Küçük olacak şekilde sorgu maliyet tahmini olup olmadığını veya önem tahmin etmek için dış tarafı 1000 ' büyük SQL Server Her iş parçacığı gibi bir sayfa tahsis SQL Server 2005. For more information about exchange operators and parallel query processing.see Paralel sorgu işleme.

USE PLAN ipucu kullan bölümlenmiş tablo sorgular

SQL Server 2008 bölümlenmiş tablolar ve dizinler sorgulamaları işlenme biçimini değiştirir.PLAN KULLANÝN ipucu kullandığınız bölümlendirilmiş nesneler üzerinde sorgu geçersiz bir plan içerebilir.Yükseltmeden sonra aşağıdaki yordamlar önerilir SQL Server 2008.

USE PLANLA ipucu, doğrudan sorguda belirtilen:

  1. USE PLANLA ipucu sorgudan kaldırır.

  2. Sorguyu sınayın.

  3. Iyileştirici uygun bir plan seçin, sorguyu ayarlamak ve sonra USE PLAN ipucu, istenen sorgu planıyla belirtin.

Ne zaman USE PLANLA ipucu belirtilen bir plan kılavuzu:

  1. Plan kılavuzu geçerliliği denetleme sys.fn_validate_plan_guide işlevini kullanın.Alternatif olarak, plan kılavuzu başarısız durumda kullanarak geçersiz planları denetleyebilirsiniz SQL Server Profiler.

  2. Plan kılavuzu geçersizse, plan kılavuzu bırakın.Iyileştirici uygun bir plan seçin, sorguyu ayarlamak ve sonra USE PLAN ipucu, istenen sorgu planıyla belirtin.

Sorgu bölümlendirilmiş nesneler üzerinde işlem hakkında daha fazla bilgi için bkz: Sorgu bölümlendirilmiş tablolar ve dizinler üzerinde geliştirmeler işleme.

Kılavuzlar planlayın.

Içinde SQL Server 2008, bir plan kılavuzu ödenmiş olamaz, farklı bir planı'nı kullanarak sorgu derler ve hata döndürdü. Içinde SQL Server 2005, bir hata ortaya çıkar ve sorgu başarısız olur.

Oluşturulan kılavuzları planlayın. SQL Server 2005 Yükseltmeden sonra geçerli olmayabilir SQL Server 2008. Geçersiz bir plan kılavuzları uygulamasının başarısız olmasına neden olur, ancak planı kılavuz kullanılmayacak.Re-evaluating ve uygulamanız için yeni bir sürümünde yükselttiğinizde, plan kılavuzu tanımları sınama öneririz. SQL Server. Performans ayarlama gereksinimleri ve plan kılavuzu eşleşen davranışını değiştirebilir.Bir veritabanına yükselttikten sonra SQL Server 2008, varolan bir planı kılavuzları kullanarak doğrulamak için aşağıdaki görevleri gerçekleştirmelisiniz sys.fn_validate_plan_guide işlev.Alternatif olarak, geçersiz bir plan kılavuzları için SQL Server Profiler'ı plan kılavuzu başarısız olay'ı kullanarak izleyebilirsiniz.

Sorgu işlemci mimarisi

SQL Server 2008 bölümlenmiş tablolar ve dizinler sorgulamaları işlenme biçimini değiştirir.Tarafından oluşturulan bir plan için PLAN KULLANÝN ipucu kullanan bölümlendirilmiş nesnelerin sorgulamaları SQL Server 2005 Geçersiz bir plan içerebilir. Daha fazla bilgi için bkz:Veritabanı Altyapısı'nı yükseltme hakkında önemli noktalar.Sorgu bölümlendirilmiş nesneler üzerinde işlem hakkında daha fazla bilgi için bkz: Sorgu bölümlendirilmiş tablolar ve dizinler üzerinde geliştirmeler işleme.

REPLACE İşlevi

Içinde SQL Server 2005, tür parametresi olduğundan, ilk girdi parametresi için DEĞIŞTIR işlevini belirtilen sonunda boşluk atılır char. Örneğin, deyimde SELECT '<' + REPLACE(CONVERT(char(6), 'ABC '), ' ', 'L') + '>', değeri 'ABC 'yanlış olarak değerlendirilir'ABC'.

Içinde SQL Server 2008, izleyen boşluklar her zaman korunur. Işlevin önceki davranış kullanan uygulamalar için ilk girdi parametresi işlev belirtirken RTRIM işlevini kullanın.Örneğin, aşağıdaki sözdizimini yeniden SQL Server 2005 Davranış SELECT '<' + REPLACE(RTRIM(CONVERT(char(6), 'ABC ')), ' ', 'L') + '>'.

Sistem veritabanları

Kaynak veritabanı

Içinde SQL Server 2005, kaynak veritabanı için veri ve günlük dosyaları, asıl veritabanı veri dosyasının konumuna bağlıdır. Bu nedenle, asıl veritabanını taşıma de aynı konuma kaynak veritabanını taşıma gerektirir.Içinde SQL Server 2008, bu bağımlılık yok. asıl veritabanı dosyaları, kaynak veritabanını taşımadan taşınabilirler.

Içinde SQL Server 2008, kaynak veritabanının varsayılan konumu <nedeniyle oluşur>: \Program Files\Microsoft SQL Server\MSSQL10. <instance_name>\Binn\. Kaynak veritabanı taşınamıyor.

tempdb veritabanı

' Ün önceki sürümlerinde SQL Server, PAGE_VERIFY veritabanı seçeneği YOK tempdb veritabanı için küme ve değiştirilemez. Içinde SQL Server 2008, tempdb veritabanı için varsayılan değer sağlama toplamı yeni yüklemelerinde olur. SQL Server. Yüklemesini yükseltirken SQL Server, varsayılan değer YOK olarak kalır. Seçeneği değiştirilebilir.Tempdb veritabanı için sağlama toplamı kullanmanızı öneririz.

En az bir oturum ile INSERT…SELECT toplu yükleme veri kullanma

' Ün önceki sürümlerinde SQL Server, bir hedef satır yükleme bulk tablo INSERT INTO deyimi kullanarak <target_ tablo> SELECT <sütunları> Kimden <source_ tablo> her zaman bir tam olarak kütüğe kaydedilmiş işlemdir. Içinde SQL Server 2008, bu işlem, en az bir yığın hedef tablodur, veritabanının kurtarma modeli basit veya toplu oturum küme ve TABLOCK ipucu hedef tabloda belirtilen oturum ile gerçekleştirilebilir. En az bir günlük deyim performansını ve hareket sırasında kullanılabilir işlem günlük alanı doldurma işlemi olasılığını azaltır.Daha fazla bilgi için bkz:INSERT (Transact-SQL).

XML

Typed XML SQL Server 2005, SQL Server 2008 için yükseltme

SQL Server 2008 birkaç Uzantıları desteği de dahil olmak üzere bir XML şeması desteği içerir. lax doğrulama, geliştirilmiş, işleme xs:tarih, xs:saat and DateTime örnek veri ve desteği eklendilist ve union türler. Çoğu durumda, değişiklikleri yükseltme deneyimini etkilemez.Ancak, bir XML şeması koleksiyonda kullanıyorsanız SQL Server 2005 türü değerleri sağlayan xs:tarih, xs:saat, or DateTime (veya herhangi bir alt türü), yükseltirken, yükseltme aşağıdaki adımlar oluşur...SQL Server 2005 veritabanına SQL Server 2008.

  1. Için her xml öğeleri veya yazılı olarak öznitelikleri içeren bir XML şema koleksiyon ile yazılan bir sütun xs:anyType, xs:anySimpleType, xs:tarih veya herhangi biri, alt türlerinden, xs:saat veya, alt türlerinden veya DateTime ve onun alt türlerinden birini veya union veya list Bu tür aşağıdakilerden herhangi birini içeren türleri oluşur:

    1. Sütunun tüm XML dizinleri devre dışı bırakılır.

    2. Tümü SQL Server 2005 Z saat dilimi için normalleştirilmiş çünkü değerler Z saat diliminde gösterilemeyecek devam eder.

    3. Tüm xs:tarih or DateTime Dizin oluşturulmuşsa veya bir XQuery veya XML DML deyimlerini yürütülen karşı daha 1 Ocak 1 yıl değerleri için çalışma zamanı hatası yol açacaktırxml Bu değer içeren bir veri türü.

  2. Negatif bir yıl içinde xs:tarih or DateTime esaslarını veya varsayılan değerleri bir XML şema koleksiyon otomatik temel izin verilen en küçük değer güncelleştirilirxs:tarih or DateTime türü.Örneğin, bu 01T00:00:00.0000000Z - 01 - 0001 için DateTime.

Basit bir SQL deyim tam olarak almak için kullanmaya devam edebilirsiniz, Not xml Negatif yıllık içerdiği bile, veri türü. Negatif yıllık yıl yeni desteklenen aralıkta değiştirme veya öğe veya öznitelik için tür değiştirme öneririz. xs:dize.Daha fazla bilgi için bkz:Klavyeyle yazılan XML Untyped XML'YE karşılaştırılması.

Ondan doğrulama ve xs:anyType öğeler

In SQL Server 2005lax validation is not supported and strict validation is applied for elements of the type anyType.Içinde SQL Server 2008, türündeki öğelerin içeriği anyType kullanılarak doğrulandı lax Doğrulama. Daha fazla bilgi için bkz:Joker karakter bileşenleri ve içerik doğrulama.

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Bölümler, "Check önbellek seçenekleri Access", "tam metin araması", "Parallelism" ve "XML" eklendi.

Bölümü, "INSERT… kullanılarak eklenir. En az bir günlük toplu yükleme verilerle için SELECT".