Hiç çok sayıda tablo başvurulan çünkü SQL Server yürütmek could bir sorgu karşılaştı mı?

oy
15

Hiç orada hata mesajlarından birini gördünüz mü?

- SQL Server 2000

Görünüm veya işlev çözümlemesi için yardımcı tablo ayrılamadı.
Bir sorgu (256) 'de tablo sayısı aşıldı.

- SQL Server 2005

Sorguda çok fazla masa adları. izin verilen maksimum 256'dır.

Evet ise, ne yaptın?

vazgeçmiş? taleplerini basitleştirmek için müşteri ikna etti? veritabanını Normalleştirilmemiş?


@ (Herkes sorgusu göndermek için beni isteyen):

  1. Cevabın düzenleme penceresinde kod 70 kilobayt yapıştırabilirsiniz olmadığından emin değilim.
  2. Bu kod 70 kilobayt Ben de beri göndermek zorunda kalacak 20 veya 30 görünümleri başvuracağı beri bu bu yardımcı olmaz Bile aksi kod anlamsız olacaktır.

Buraya övünme am gibi ses istemiyorum ama sorun sorgularda değil. sorgular uygun (veya en azından hemen hemen optimum) vardır. Ben her sütunda ve kaldırılabilir her tablo için arayan, onları optimize sayısız saatler geçirdim. (O hala küçük bir rapor iken birkaç yıl önce tasarlanmıştı nasıl çünkü) tek deyim ile doldurulacak olan 200 veya 300 sütunları olan bir rapor düşünün.

Oluştur 05/08/2008 saat 15:54
kaynak kullanıcı
Diğer dillerde...                            


8 cevaplar

oy
8

SQL Server 2005 için, ben masa değişkenleri kullanarak ve kullandıkça kısmen verileri bina öneriyoruz.

Bunu yapmak için, kullanıcıya göndermek istediğiniz nihai sonuç kümesini temsil eden bir tablo değişkeni oluşturun.

Sonra (diyelim siparişler yukarıdaki örnekte tablo) ve bu verileri, artı tek uzakta katılmak demek olduğunu tamamlayıcı bir bit veri (müşteri adı, ürün adı) çekin birincil tabloyu bulun. Sen düz tablo değişkeni bu koymak için bir SELECT INTO yapabilirsiniz.

Oradan, masanın yineleme ve her satır için, size sonuç kümesi için gereken tüm ek verileri alır küçük SEÇ sorguları bir grup var. Gittiğiniz her sütuna bunlar yerleştirin.

İşlem tamamlandıktan sonra, daha sonra tablo değişkeni basit bir SELECT * yapmak ve kullanıcıya ayarlanmış bu sonucu döndürebilir.

Bunun için herhangi bir sabit numaraları yok ama bu daha küçük sorguları aslında daha hızlı katılır bir grup ile bir kitlesel seçme sorgusu yapmaktan daha çalıştı yapıyor nerede bugüne kadar üzerinde çalışmış üç farklı örnekler olmuştur.

Cevap 05/08/2008 saat 16:19
kaynak kullanıcı

oy
1

CRM ait katılır birçok sonuçlanan güzel normalize veri şemasını sahip SQL Server 2000 üzerinde çalışan Dynamics CRM yüklemeleri için Raporlama Hizmetleri Raporları yazarken Bu her zaman olur. : Yukarı vasiyeti 256 den sınırı etrafında bir düzeltme bir kuyruklu 260 aslında var http://support.microsoft.com/kb/818406 (biz her zaman bu SQL Server takımın parçası üzerinde büyük bir şaka düşünce).

Dillie-O Aludes olarak çözüm, ve daha sonra ana katılır kullanmak geçici tablo değişkenleri içine çarpanlarına (birden çok kez kullanıldığı tercihen olanlar) "alt-katılır" uygun belirlemektir etmek. Bu büyük bir PIA olduğunu ve genellikle performansı öldürür. Senin için üzgünüm.

@Kevin, tişörtümü seviyorum - tüm :-) diyor.

Cevap 02/11/2008 saat 16:50
kaynak kullanıcı

oy
1

istatistikler tablodaki uygun kayıtlar @chopeen Sen bu istatistikleri hesaplama ediyoruz biçimini değiştirmek olabilir ve sipariş verildikten .. zaman yerine ürünlerle, döngü hepsi başı ürünün istatistikleri ayrı bir tablo tutmak ve güncellemek. Bu daha ziyade bir rapor çalıştırırken tek büyük sorguda her şeyi çalıştıran daha ödeme sayfasına yönlendirmeye hesaplama yükünün çok kayacaktır. Tabii aynı zamanda bu şekilde çalışması için gidiş değildir Bazı istatistikler, belirli bir ürünü satın aldıktan sonra müşterilerin sonraki izleme alımları var eg bulunmaktadır.

Cevap 05/08/2008 saat 16:19
kaynak kullanıcı

oy
1

Durumun bu tür rastlamak asla ve sorgu ölümlü bana korku ile fils de> 256 tablolarını başvurarak fikri dürüst olmak gerekirse.

Muhtemelen göre ilk soru "Neden bu kadar çok?" Yakından takip etmelidir "Ben hangi bilgilerin bit mi DEĞİL gerek?" Ben veri miktarı da oldukça ciddi uygulamanın performansını etkilemeye başlayacaktır böyle bir sorgudan döndürülen endişe olurdu.

Cevap 05/08/2008 saat 15:57
kaynak kullanıcı

oy
0

Bir görünüm oluşturmak istediğinde (2008 çalışmış) SQL Server 2005'te aynı sorunu vardı. Ben görüntü yerine bir saklı yordam oluşturarak sorunu çözüldü.

Cevap 07/03/2012 saat 16:59
kaynak kullanıcı

oy
0

Benim gelişim kutusu SQL Server 2008 (görünüm iyi çalıştı) ancak üretim görünüm vermedi (SQL Server 2005 ile) çalışır ... Bu aynı problem vardı. Hatası attı görünümünde sorgusunun bir parçası olarak yeni incelemeler kullanılarak, bu sınırlama önlemek için görünüm oluşturma sona erdi.

Tür saçma mantıksal yürütme dikkate aynıdır ...

Cevap 19/08/2010 saat 18:29
kaynak kullanıcı

oy
0

sorguyu yayınla: D

Ayrıca Mümkün sorunlardan biri, tek bir arama tablosu içine kondanse olabilir isim / değer tablolarda bir ton (okuma 200 +) 'e sahip olabilir gibi hissetmek.

Cevap 05/08/2008 saat 16:26
kaynak kullanıcı

oy
0

O sorguyu görmek istiyorum, ama bunun Yineleyici çeşit bazı sorun olduğunu hayal ve ben nerede olası herhangi durumların düşünemiyorum ederken, bunun kötü iken / durumda / imleç veya ton dan bahse kötü görünümleri uyguladı.

Cevap 05/08/2008 saat 15:58
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more