2010-11-22 30 views
1

Gerçekten garip bir şeyle karşı karşıyayım.SQL Server'da bir tablodaki tüm veriler seçilemiyor

400 000 kayıt içeren bir tabloda (T).

bu seçerken:

select top 150000 * from T 

Ben 3 secondes

yılında cevabı var ama hepsini alırsam, ben sonuç kalmadan 5 dakika sonra isteği durdurun.

Bu sorun hakkında bir fikriniz var mı?

thx

Pit

+1

Tabloda herhangi bir dizin var mı? –

+0

Verileri nasıl seçersiniz? SMS kullanıyor musunuz? – abatishchev

+0

Niçin müşteriye 400.000 kayıt almaya çalışıyorsunuz? Sorgu planına bir göz atabilir misiniz? – Jan

cevap

4

neden aramaya ana alan şunlardır:

  1. Disk IO
  2. Önbellek isabet oranı
  3. tablonun bir sayfada bir blok Diğer işlemler nedeniyle (Sorguyla İLE (NOLOCK) tablo ipucu ekleyin)
  4. Ağ tıkanıklığı db sunucusundan alıcıya ng)

Dizine gerek duymadığına ve tablonun her sayfasının okunması gerektiğine Arman ile katılıyorum.

+0

Kayıtlı olmayan bir kullanıcı olduğum için kayda geçemiyorum ama 3 –

+0

numaralı telefondan şüphelenirim (NoLock) ile çalışmak harika çalışıyor! –

+0

Bu yüzden istek, okumak istediği tabloyu kilitlemeye çalıştığında engelleniyor mu? Aynı zamanda bir şeyler ısrar ediyor: Tabloda yaratmadığım 2 nx var ve tahminler sonucu bunlardan birini alıyor. Bu yüzden ben 2ndx detroy ve 3 doğru –

İlgili konular