Microsoft hesabıyla oturum açın
Oturum açın veya hesap oluşturun.
Merhaba,
Farklı bir hesap seçin.
Birden çok hesabınız var
Oturum açmak istediğiniz hesabı seçin.

Belirtiler

Aşağıdaki senaryoyu düşünün:

  • Bağlantılı bir sunucu, yerel sunucu ve hem de Microsoft SQL Server 2012 örnekleri olan bir uzak sunucu arasında yapılandırılır.

  • Yerel sunucu büyük küçük harf duyarlı harmanlamayı gibi bir harmanlama kullanarak yapılandırılır.

  • Uzak sunucu büyük küçük harf duyarlı alfabe düzeni gibi yerel sunucudan farklı bir harmanlama yapılandırılmış olan bir nesne var.

  • Bir bağlantı Microsoft JDBC sürücüsü'nü için SQL Server, SQL Server, SQL OLE DB sağlayıcısı veya SQL Native Client için Microsoft ODBC sürücüsü yerel sunucuya yapılır.

  • Sürücü olarak yerel sunucuda sp_prepexec saklı yordamı çağıran hazırlanmış deyimi Transact-SQL güncelleştirme sorgusu yürütür.

  • Uzak sunucudaki bir tablonun sorgusunu güncelleştirir. Bu yerel sunucudan farklı bir alfabe kullanan bir column nesnesi içerir.

Bu senaryoda sorgu yürütme düşük performansla karşılaşabilirsiniz. Güncelleştirme sorgusu yürütme planını denetle, süzme olmadan uzaktan tarama tablosunda bir uzak sunucu üzerinde gerçekleştirilir görebilirsiniz. Bu nedenle, uzak tablo tarar ve sonra yerel sunucuya tüm satırları alır çok okuma sorgu gerçekleştirebilir.

Örneğin, sorgu yerel sunucuda varsayılan büyük küçük harf duyarlı alfabe düzeni var. hazırlanır ve uzak sunucu T1 büyük küçük harf duyarlı olan bir sütunu içeren bir tablo vardır. Update T1tüm satırların tarar.
DECLARE @p1 INTEXEC sp_prepexec @p1 output, N'@P0 NVARCHAR(16), @P1 NVARCHAR(16)',
N'UPDATE RemoteServer.RemoteDatabase.dbo.T1 SET COL1=@P0 WHERE COL2=@P1',
N'a', N'a'
SELECT @p1

Neden

Sorun, uzak tablo prepared güncelleştirme sorgusu tarayacağı harmanlama sunucularda hem de eşleşmediğinde oluşur.

Her yeni bir toplu güncelleştirme SQL Server için tüm düzeltmeleri içerir ve tüm güvenlik, düzeltmelerini önceki toplu güncelleştirme ile birlikte. SQL Server için en son toplu güncelleştirme denetleyin:


Düzeltme bilgileriMicrosoft, desteklenen bir düzeltmeyi kullanıma sunmuştur. Ancak bu düzeltme yalnızca bu makalede anlatılan sorunu düzeltmek amacıyla hazırlanmıştır. Bu düzeltmeyi yalnızca bu sorunla karşılaşmış olan sistemlere uygulayın.

İndirilebilir bir düzeltme varsa, bu Bilgi Bankası makalesinin üst kısmında "Düzeltme İndirilebilir" bölümü bulunur. Bu bölüm görünmüyorsa, düzeltmeyi edinmek üzere Microsoft Müşteri Hizmetleri ve Destek bölümüne bir istek gönderin.

Not: Ek sorunlar oluşursa veya sorun giderme gerekiyorsa, ayrı bir hizmet isteği oluşturmanız gerekebilir. Ek destek sorularına ve bu düzeltme için geçerli olmayan sorunlara normal destek ücretleri uygulanır. Tam listesi Microsoft Müşteri Hizmetleri ve destek telefon numaralarını veya ayrı bir hizmet isteği oluşturmak için aşağıdaki Microsoft Web sitesini ziyaret edin:

http://support.microsoft.com/contactus/?ws=supportNot: "Düzeltme indirilebilir” formu, düzeltmenin indirilebildiği dilleri görüntüler. Kendi dilinizi görmüyorsanız, bu dil için bir düzeltme mevcut değil demektir.

ÖnkoşullarBu düzeltmeyi uygulamak için SQL Server 2012 yüklü olması gerekir.

Kayıt defteri bilgileriBu düzeltmeyi uyguladıktan sonra kayıt defterini değiştirmeniz gerekmez.

Düzeltme değiştirme bilgileriBu düzeltme eki, başka düzeltmelerin yerini almaz.


Durum

Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Geçici çözüm

Çalışmak için sorun abound, aşağıdaki yöntemlerden birini kullanın:

  • İstemci uygulama kaynak kodunda hazırlanmış deyimleri kullanmayın. Sürücü bu arabirimleri desteklemesi durumunda geçici deyimleri veya saklı yordamlar gibi çağrılabilir deyimleri yerine kullanabilirsiniz.

  • Her iki sunucularda eşleşen bir harmanlama kullanın.

Daha fazla bilgi

İzleme bayrağı'nı etkinleştirmek için başlangıç parametresini ekleyin -T4199 veya davranışını etkinleştirmek için hazırlanmış deyimi derlenmiş önce DBCC TRACEON(4199,-1) .

İzleme bayrağı'nı etkinleştirmek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  • SQL Server başlamadan önce Microsoft SQL Server Configuration Manager kullanın, etkilenen örneğini sağ tıklatın ve başlangıç parametresini ekleyin -T4199 örnek için tüm bağlantıları ve yeniden başlatmalar arasında gelecekte devam böylece.

  • Dinamik olarak hizmeti başlatıldıktan sonra çalışma zamanında ve genel olarak tüm bağlantılar "(-1) için ayarı etkinleştirin." Açık veya kapalı anahtarı ile test yapmayı planlıyorsanız, yordam önbelleği boşaltmak emin olun.

    Ayarı etkinleştirmek için aşağıdaki kullanın genel ve dinamik olarak:
    DBCC TRACEON(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE
    Bu ayarı devre dışı bırakmak için aşağıdaki kullanın genel ve dinamik olarak:
    DBCC TRACEOFF(4199,-1)DBCC TRACESTATUS(-1)
    DBCC FREEPROCCACHE


Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.

Bu bilgi yararlı oldu mu?

Dil kalitesinden ne kadar memnunsunuz?
Deneyiminizi ne etkiledi?
Gönder’e bastığınızda, geri bildiriminiz Microsoft ürün ve hizmetlerini geliştirmek için kullanılır. BT yöneticiniz bu verileri toplayabilecek. Gizlilik Bildirimi.

Geri bildiriminiz için teşekkürler!

×