ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Bağlantılı bir sunucu üzerinde bir tablosunu güncelleştirir ve sonra yerel sunucuda bir tabloya tabloyu birleştiren bir sorgu var.
Microsoft SQL Server 2005, yerel sunucu çalışıyor.
Yerel sunucu üzerinde SQL Server 2005'te sorguyu çalıştırın.
Bu senaryoda, performansı aynı sorguda bir Microsoft SQL Server 2000 ile karşılaştırıldığında, performansı yavaş gelir. Örneğin, SQL Server 2000'de Sorguyu çalıştırdığınızda, sorgu 1 bitmesini saniyeden alır. Ancak, SQL Server 2005'te Sorguyu çalıştırdığınızda, sorgu tamamlanması yaklaşık 24 saniye sürer.
Neden
Sorgu, bağlantılı bir sunucu üzerinde bir tabloyu uzaktan tarama işlemi gerçekleştirir. SQL Server 2005'te Sorguyu çalıştırdığınızda, uzaktan tarama işlemi tablosundaki tüm satırları alır. Tablo çok fazla satır içeriyorsa, uzaktan tarama işlemi tamamlamak için uzun sürüyor.
Ancak, SQL Server 2000'de Sorguyu çalıştırdığınızda, uzaktan Query işlemi bağlantılı bir sunucu üzerinde çalıştırmak için bir sorgu gönderir. Bu nedenle, çok sayıda tablo içeriyor olsa bile, kısa bir süre uzaktan tarama işlemi tamamlanır.
Pratik Çözüm
Bu soruna geçici bir çözüm bulmak için <a0></a0>, yerel sunucuda tablosundaki bir UNIQUE sınırlamasıyla veya bir PRIMARY KEY kısıtlaması ekleyin. Kısıtlamayı KATıLMA işlemi için kullandığınız bir sütun ekleyin.
Örneğin, aşağıdaki adım 4 "daha fazla bilgi" bölümünde açıklanan DECLARE bildirimi güncelleştirmeniz:
DECLARE @t2 table (c1 int primary key, c2 int)
Durum
Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.
Daha fazla bilgi
Sorunu yeniden oluşturma adımları
Not Aşağıdaki adımlar, SQL Server 2005 çalıştıran iki sunucu olduğunu varsayalım. Bir örnek ServerA\SQL2005 adıdır. Diğer örnek ServerB\SQL2005 addır.
SQL Server 2005'in ServerA örneğinde, SQL Server Management Studio'da bir veritabanı oluşturmak için aşağıdaki kodu çalıştırın:
USE MASTERGOIF EXISTS (SELECT * FROM sysdatabases where name = 'LinktestTarget') DROP DATABASE LinktestTargetGOCREATE DATABASE LinktestTargetGOALTER DATABASE LinktestTarget MODIFY FILE(NAME = 'LinktestTarget', SIZE = 200MB)GOALTER DATABASE LinktestTarget MODIFY FILE(NAME = 'LinktestTarget_log', SIZE = 100MB)GO
SQL Server 2005'in <a1>SunucuB</a1> örneğinde Management Studio'da bağlantılı bir sunucu oluşturmak için aşağıdaki kodu çalıştırın: @ sunucuadı