Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Вниз

Ошибка про множество таблиц в запросе   Найти похожие ветки 

 
big_bugzy   (2003-12-11 15:32) [0]

SQL сказал ошибку, говорит в запросе больше 256 таблиц и выполнить его он не может...
это как-нибудь лечится??


 
MV   (2003-12-11 15:33) [1]

Покажи запрос, если не жалко!


 
Stas   (2003-12-11 15:33) [2]

А их действительно больше ?


 
Johnmen   (2003-12-11 15:36) [3]

>Покажи запрос, если не жалко!

Вот только этого НЕ НАДО !!!


 
big_bugzy   (2003-12-11 15:47) [4]

запрос типа

SELECT * FROM TABLE LEFT JOIN(SELECT COUNT(field),TABLE_ID FROM TABLE2 LEFT JOIN TABLE ON TABLE2.TABLE_ID = TABLE.ID GROUP BY TABLE2.TABLE_ID) AS TAB1 ON TABLE.ID = TAB1.TABLE_ID
LEFT JOIN(SELECT COUNT(field),TABLE_ID FROM TABLE2 LEFT JOIN TABLE ON TABLE2.TABLE_ID = TABLE.ID GROUP BY TABLE2.TABLE_ID) AS TAB2 ON TABLE.ID = TAB2.TABLE_ID ....


примерно так вроде...
этих TAB может быть несколько...
в моем конкретном случае их 10 ,сам запроос получился примерно на 4500 символа...


 
Stas   (2003-12-11 15:49) [5]

А представления есть ?


 
big_bugzy   (2003-12-11 15:50) [6]

нет, вьюх нету


 
Stas   (2003-12-11 15:52) [7]

А QueryAnalizer что говорит ?


 
big_bugzy   (2003-12-11 15:53) [8]

в общем, вот начало запоса...

SELECT [NAME], Kol1, Kol2, Kol3, Kol4, Kol5, Kol6, Kol7, Kol8, Kol9, Kol10, Kol
FROM Lk_EvGroup LEFT JOIN
(SELECT COUNT(EVENT_PK) AS Kol1, EVGROUP_ID
FROM Vw_Event LEFT JOIN
Lk_EvGroup ON Vw_Event.EVGROUP_ID = Lk_EvGroup.[ID]
WHERE (Lk_EvGroup.L_TSZ = 1) AND (TSZ = 1)
GROUP BY Vw_Event.EVGROUP_ID) AS Tab1 ON Lk_EvGroup.[ID] = Tab1.EVGROUP_ID LEFT JOIN
(SELECT COUNT(EVENT_PK) AS Kol2, EVGROUP_ID
FROM Vw_Event LEFT JOIN
Lk_EvGroup ON Vw_Event.EVGROUP_ID = Lk_EvGroup.[ID]
WHERE (Lk_EvGroup.L_TSZ = 1) AND (TSZ = 2)
GROUP BY Vw_Event.EVGROUP_ID) AS Tab2 ON Lk_EvGroup.[ID] = Tab2.EVGROUP_ID LEFT JOIN
...

WHERE Lk_EvGroup.L_TSZ = 1


 
big_bugzy   (2003-12-11 15:54) [9]

Аналайзер говорит что таблиц много, больше 256...


 
big_bugzy   (2003-12-11 15:54) [10]

Could not allocate ancillary table for view or function resolution. The maximum number of tables in a query (256) was exceeded.


 
Stas   (2003-12-11 15:56) [11]

И Дельфа и Анализер говорят одно и тоже ?


 
big_bugzy   (2003-12-11 15:56) [12]

ой, всетаки есть вьюха...


 
big_bugzy   (2003-12-11 15:57) [13]

ошибку возвращает сервер, дельфи ее только передает ...


 
Stas   (2003-12-11 15:57) [14]

А может в ней больше 256 табл. или вобщем ?


 
Stas   (2003-12-11 15:58) [15]

ошибку возвращает сервер, дельфи ее только передает ...

Я знаю. Просто если ты используешь Локальный курсор то сообщения могут отличатся.


 
big_bugzy   (2003-12-11 16:00) [16]

курсор локальный, сообщения одинаковые...


 
big_bugzy   (2003-12-11 16:01) [17]

во вью 3 таблицы, но она используется в левых подстановках постоянно...


 
big_bugzy   (2003-12-11 16:03) [18]

Я ошиюся... вью ссылается на еще одну вью в которой 9 таблиц, итого получаем 12...


 
MV   (2003-12-11 16:04) [19]

Хранимые процедуры?


 
big_bugzy   (2003-12-11 16:05) [20]

Хранимые процедуры?

нету


 
Stas   (2003-12-11 16:08) [21]

Может обновить MDAC ?


 
big_bugzy   (2003-12-11 16:09) [22]

2.7 стоит...


 
Stas   (2003-12-11 16:12) [23]

А ты сам запрос попробуй урезать. для эксперемента или разбить на несколько представлений


 
big_bugzy   (2003-12-11 16:15) [24]

с эти немного сложнее, запрос формируется динамически, динамически его разбивать может не получиться...
я думал что може можно как-нибудь заставить сервер обработать запрос с числом таблиц больше 256...
а так придется менять все похоже, и выполнять все в несколько приемов...


 
MV   (2003-12-11 16:15) [25]

Используйте ХП!


 
big_bugzy   (2003-12-11 16:16) [26]

да, сам запрос работате, если в нем прицеплено меньше 6 левых джоинов...


 
big_bugzy   (2003-12-11 16:17) [27]

ХП это что? винда ХП??


 
MV   (2003-12-11 16:17) [28]

Вынесите все на клиента.


 
MV   (2003-12-11 16:17) [29]

ХП - хранимые процедуры


 
big_bugzy   (2003-12-11 16:18) [30]

понятно, буду пробовать, хотя посмотрим...


 
Stas   (2003-12-11 16:19) [31]

Скорее ошибка не в кол-ве таблиц а в объеме запроса 4,5 кб - это немало.


 
Zz_   (2003-12-11 16:20) [32]

Это принцып

declare @t table (...)
insert into @t SELECT EVGROUP_ID, TSZ, KOLX = COUNT(EVENT_PK)
FROM Vw_Event
LEFT JOIN
Lk_EvGroup ON Vw_Event.EVGROUP_ID = Lk_EvGroup.[ID]
WHERE (Lk_EvGroup.L_TSZ = 1)
GROUP BY Vw_Event.EVGROUP_ID, TSZ

SELECT [NAME],
Kol1 = case when TSZ = 1 then KOLX else 0 end,
Kol2 = case when TSZ = 2 then KOLX else 0 end,
...
FROM Lk_EvGroup
LEFT JOIN @t ON Lk_EvGroup.[ID] = Tab1.EVGROUP_ID and TSZ = 1
LEFT JOIN @t ON Lk_EvGroup.[ID] = Tab1.EVGROUP_ID and TSZ = 2
LEFT JOIN
...
WHERE Lk_EvGroup.L_TSZ = 1


 
big_bugzy   (2003-12-11 16:24) [33]

всем спасибо, я понял что нужно все поменять... буду менять...


 
Stas   (2003-12-11 16:26) [34]

big_bugzy (11.12.03 16:24) [33]

А что ? если не секрет


 
big_bugzy   (2003-12-11 16:31) [35]

запрос буду менять...
если не получиться, то считать поэтапно буду, а не все разом...
но это зжорово замедляет процесс...


 
Stas   (2003-12-11 16:34) [36]

А ! Я думал ты нашел в чем проблема...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.011 c
14-25500
Maxim Vetera
2003-12-18 19:34
2004.01.09
Беларусь.


4-25656
KbIC
2003-11-06 12:27
2004.01.09
Console application


1-25338
Кен
2003-12-08 06:30
2004.01.09
Как можно БЫСТРО найти в массиве одинаковые числа ?


3-25199
zergey
2003-12-12 10:54
2004.01.09
Доступ к нескольким книгам Excel


1-25308
lucky4me
2003-12-25 14:07
2004.01.09
как вставить кнопку/меню в OutlookExpress





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский