Имя: Пароль:
1C
 
Превышение количества таблиц в запросе
0 DEVIce
 
20.12.10
12:52
Есть некий запрос, не важно какой. Работает на ура. Обертываю его в другой запрос, при этом никакие больше таблицы не использую, т.е. тупо обернули все. Ругается на превышение количества таблиц в запросе. Как с этим можно бороться?
1 Живой Ископаемый
 
20.12.10
12:53
перейти на файловый вариант или на другой Сервер БД... там это реализовано
2 Ненавижу 1С
 
гуру
20.12.10
12:55
составные типы видимо
3 DEVIce
 
20.12.10
12:56
На файловый не вариант - база 60Гб. Варианта переработать запрос нет? Ну там по временным таблицам сначала раскидать? Или если все в одном запросе, то временные таблицы через ПОМЕСТИТЬ не проканают?
4 КМ155
 
20.12.10
12:57
(2) или .*
5 luckyluke
 
20.12.10
12:57
(0) Не делать неявного соединения через "." с полями составного типа, например. Т.е. если есть Субконто1.Код, то выразить это субконто через Выразить(Субконто1 КАК Справочник.Номенклатура).Код + заменить вскую хрень типа:
"Регистратор.Ссылка" на "Регистратор"...
6 DEVIce
 
20.12.10
12:57
(2). Думаешь имеет смысл использовать ВЫРАЗИТЬ как можно раньше?
7 Живой Ископаемый
 
20.12.10
12:57
Может быть действительно, попробовать применить ВЫРАЗИТЬ, во многих случаях должно помочь
8 DEVIce
 
20.12.10
12:58
(5). "Регистратор.Ссылка" на "Регистратор"" - от этой хрени уже избавился.
9 luckyluke
 
20.12.10
12:58
(3) запрос в студию в общем.
10 Живой Ископаемый
 
20.12.10
12:58
А что за СКЛ сервер?
11 Живой Ископаемый
 
20.12.10
12:59
Просто ограничение в 256 таблиц вродже только в ограниченных редакциях МС СКЛ, а ограниченные редакции они и БД поддерживают только ограниченные,, а никак не 60Гб
12 Mnemonic1C
 
20.12.10
13:00
(9) Да да
13 luckyluke
 
20.12.10
13:00
(11) причем это ограниечени вроде только до  мс скл 2008...
14 Maxus43
 
20.12.10
13:01
(11) 256 таблиц это любой скуль, затык не в версии
15 Живой Ископаемый
 
20.12.10
13:02
2(14) нет не любой
16 cobRA
 
20.12.10
13:03
(11) В MS SQL2005 это ограничение есть. Мне приходилось изгиляться через временные таблицы :)
17 lxs
 
20.12.10
13:06
(16) +100500
18 Живой Ископаемый
 
20.12.10
13:07
(16) стало быть нужно обновиться до 2008... :) вот и рецепт?
19 Maxus43
 
20.12.10
13:07
(15) Беглый поиск по инету не дал опровержения моего утверждения...

Microsoft OLE DB provider for SQL Server: Too many table names in the query. The maximum allowable is 256. HRESULT=80040E14, SQLSTATE=42000, native=106

Microsoft SQL Server 2000 и 2005 позволяют использовать в простом запросе не более 256 таблиц базы данных. Если количество таблиц превышает 256, то выдается сообщение об ошибке. Начиная с версии 8.0.11.3 платформа 1С:Предприятия выдает диагностику без завершения работы клиентского приложения.

так же встретил:
Имеется теоретическое ограничение в 256 таблиц на запрос
20 73
 
20.12.10
13:09
(19) Кроме Microsoft есть и другие скули...
21 Maxus43
 
20.12.10
13:09
(20) ну мы то про него, если я не ошибаюсь
22 luckyluke
 
20.12.10
13:09
(18) Не факт, хотя я читал что один и тот же запрос на 2005 мс скуль не работал ссылаясь на ошибку 256 таблиц, а на мс скуль 2008 работал...
Выходов как минимум 3:
1. Попробовать убрать неявное соединение с полями составного типа
2. временные таблицы
3. Смена мскуэля.
23 luckyluke
 
20.12.10
13:10
(19) "Microsoft SQL Server 2000 и 2005" - на счет 2005 никто и не спорил что там нет ограничения, вопрос только по поводу 2008...
24 Maxus43
 
20.12.10
13:12
(23) в (11) на редакции ссылался, чего я не нашёл. 2008 походу да, без ограничения этого... незнаю, не юзал 2008
25 Живой Ископаемый
 
20.12.10
13:13
Впрочем если 8.1, то даже переход на 2008 может не помочь..
26 DEVIce
 
20.12.10
13:17
Два запроса через ; тоже будет складывать количество таблиц, или все-таки обработает последовательно и не будет ругаться?
27 Maxus43
 
20.12.10
13:18
(26) Пакетный запрос всмысле? не будет складывать
28 luckyluke
 
20.12.10
13:18
(26)Пакетный запрос по идее должен прокатить, пробуй, неужели так долго вытащить кусок запроса в ВТ? :)
29 DEVIce
 
20.12.10
13:20
Скуль 2005, 1С 8.1. Убрал ПРЕДСТАВЛЕНИЕ во вложенном запросе, везде поставил ВЫРАЗИТЬ. Фиг. Интересно другое, неужели простая обертка запроса настолько сильно увеличивает количество таблиц? Или их уже было как раз 256? :)
30 DEVIce
 
20.12.10
13:20
(28). Нет не долго, как раз в консоли ковыряю. Просто запрос большой.
31 Живой Ископаемый
 
20.12.10
13:20
2(29) ну, что тебе ответить... Настраиваешь ТЖ и смотришь какой СКЛ-запрос получался.. или через профайлер.
32 DEVIce
 
20.12.10
13:26
Ага, раскидал запрос по частям, благо конструкция позволяет. Теперь работает. :) Фууух.
33 luckyluke
 
20.12.10
13:27
(29) ну да было 255, стало 256..., хотя я сомневаюсь, просто вложенные запросы и соединения с ними могут неожиданно трактоваться MS SQL-ем...
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший