SELECT çalıştırdığınızda performans düşüyor... SQL Server 2012 için yükseltme ve daha sonra bir sorguda BİRLEŞTİRİR

ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 3144525
Belirtiler
SQL Server 2012 veya sonraki bir sürümü için Microsoft SQL Server 2008 R2 veya daha önceki bir sürümünden yükselttikten sonra oseçin görebilirsiniz... İÇİNE kullanıcı tanımlı işlevler içeren sorgular önceki sürümlerde daha tamamlanması uzun zaman alır.
Neden
Bu sorun oluşur, seçin... İÇİNE , kullanıcı tanımlı işlevler (UDF'leri) içeren ifadeler işlemler tamamen kütüğe kaydedilmiş ve SQL Server 2012 ve sonraki sürümlerinde tamamlamak için ek zaman alır.

Not: Herhangi Seç... İÇİNE , kullanıcı tanımlı işlevler içeren deyimleri olan en az oturum işlemleri önceki sürümlerinde (SQL Server 2008 R2 ve önceki sürümleri). Bu değişiklik, kullanıcı tanımlı bir işlev aynı nesne üzerinde okuma/yazma işlemleri gerçekleştirebilir ve en az bir günlüğe kaydetme işlemi etkinleştirilmişse, veri bozulmasına neden olabilir veri bütünlüğünü sağlamak için kullanılmaya başlandı.
Pratik Çözüm
İçinde kullanılan kullanıcı tanımlı işlevler'i seçerseniz... İÇİNE ifade herhangi bir veri erişim işlemleri gerçekleştirmek yoksa, bu kullanıcı tanımlı işlevler için türetilmiş UserDataAccess özelliği 0 olarak ayarlar kullanıcı tanımlı işlevler için ema BALAMA yan belirtebilirsiniz. Bu değişiklikten sonra Seç... İÇİNE ifadeleri en az oturum. Daha fazla bilgi için bkz. blog ema BALAMA kullanma örneği için örnek.

Not: Deyim hala bu özelliği 1'e ayarlı olduğu en az bir kullanıcı tanımlı işlevi başvurursa, işlemi tam olarak günlüğe kaydedilir.
Daha fazla bilgi
Aşağıdaki örnek kodu davranışı SQL Server 2008 R2 ve SQL Server 2012 ya da 2014 arasındaki farkı gösterir:

create database DB1gouse DB1gocreate function dbo.MyTrim (@name as varchar(100))returns varchar (100)asbeginreturn (RTRIM(ltrim(@name)))endgocreate table dbo.tab_prod (c1 int, c2 varchar(10))godeclare @a int set @a = 1while @a <= 100000begin insert into tab_prodvalues (@a , '  test ')set @a = @a + 1endbegin transelect  *,  dbo.mytrim(c2) as trimc2 into tab_test from tab_prod

Aşağıdaki tabloda, bir select INTO işlem için SQL Server 2008 R2'de, SQL Server 2014 ile CPU zamanı karşılaştırılmaktadır:

SürümYürütme saati (CPU)
SQL Server 2008 R2719 ms
SQL Server 20141360 ms

Aşağıdaki tabloda, bir select INTO işlem için SQL Server 2008 R2'de, SQL Server 2014 ile hareket günlük kullanımını karşılaştırılmaktadır:

SürümVeritabanı adıGünlük boyutu (MB)Kullanılan günlük alanı (%)Durum
SQL Server 2008 R2AB10.742187551.578950
SQL Server 2014AB132.1796938.44380
Önemli Not Bu tablolardaki sonuçları yalnızca SQL Server 2008 R2 ve SQL Server 2014 arasında davranış değişikliği bir örnektir ve bu test için kullanılan laboratuar ortamında çok özeldir. Ortamınızdaki gerçek performans farkı, SQL örneğinin üzerinde çalıştığı donanımın bağlı olacaktır.
Not Bu, doğrudan Microsoft destek kuruluşu tarafından oluşturulan bir “FAST PUBLISH” makalesidir. Buradaki bilgiler, ortaya çıkan sorunları gidermek üzere olduğu gibi sağlanmaktadır. Mümkün olduğu kadar hızlı sunulmasının bir sonucu olarak malzemelerde yazım hataları bulunabilir ve bunlar bildirimde bulunulmadan daha sonra düzeltilebilir. Diğer hususlar için Kullanım Koşulları’na bakın.

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 3144525 - Son İnceleme: 03/03/2016 22:33:00 - Düzeltme: 1.0

Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL 2005 Server Workgroup, Microsoft SQL 2005 Server Enterprise, Microsoft SQL Server 2008 Developer, Microsoft SQL Server 2008 Enterprise, Microsoft SQL Server 2008 Express, Microsoft SQL Server 2008 Standard, Microsoft SQL Server 2008 Web, Microsoft SQL Server 2008 Workgroup, Microsoft SQL Server 2008 R2 Datacenter, Microsoft SQL Server 2008 R2 Developer, Microsoft SQL Server 2008 R2 Enterprise, Microsoft SQL Server 2008 R2 Express, Microsoft SQL Server 2008 R2 Standard, Microsoft SQL Server 2008 R2 Web, Microsoft SQL Server 2008 R2 Workgroup

  • kbsurveynew kbtshoot kbexpertiseadvanced kbmt KB3144525 KbMttr
Geri bildirim