![]() |
![]() |
![]() |
|
Превышение количества таблиц в запросе | ☑ | ||
---|---|---|---|---|
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-ем...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |