none
Ограничение SQL 2005 на открытие 256 таблиц. RRS feed

  • Вопрос

  • Господа, подскажите, как избежать ограничения SQL на открытие 256 таблиц?

    В частности, 1С 8,1 по запросу начинает открывать много таблиц и получаем ошибку.

    1С-ники ссылаются на ограничение в SQL.


    zhogov
    28 января 2009 г. 5:51

Ответы

  •  Ну уж если никак без большого кол-ва таблиц, то объединяйте их логически по N штук (<256) во Вьюшки и уже работайте с ними
    • Помечено в качестве ответа Roman ZhukovModerator 19 февраля 2013 г. 8:15
    29 января 2009 г. 9:00
    Отвечающий
  • Формально, их ответ означает, что 1С несовместима с MSSQL Server.
    Можно попробовать намекнуть им на то, что пожалеутесь в MS - ограничение на 256 таблиц в запросе документировано и претензии предъявлять на эту тему нельзя. Продукт 1С насколько я понимаю, сертифицирован (или что-то типа того) на совместимость с SQL Server и обязан учитывать данное ограниечение.

    Неформально - во-первых вряд ли они это исправят. :)
    Во-вторых, посмотрите, не слишком ли мудреная структура.
    Воспользуйтесь профайлером, посмотрите, что за запрос приходит на сервер. (Событие BatchStarting, есть в трассе по умолчанию)
    Попробуйте попросить помощи тут: http://www.sql.ru/forum/actualtopics.aspx?bid=63
    все-таки в самой замороченной структуре для 256 таблиц нужно 256 полей Вряд ли Вам действительно нужно такое количество. ;)

    • Помечено в качестве ответа Roman ZhukovModerator 19 февраля 2013 г. 8:16
    1 февраля 2009 г. 23:00
    Отвечающий

Все ответы

  • Это ограничение на один запрос и избежать его можно разумным проектированием приложения.

    Думаю, 1С-никам лучше разобраться, зачем в запросе используется такое большое количество таблиц. Скорее всего, одна и та же там подключается по нескольку раз.

    28 января 2009 г. 6:26
    Отвечающий
  •  Ну уж если никак без большого кол-ва таблиц, то объединяйте их логически по N штук (<256) во Вьюшки и уже работайте с ними
    • Помечено в качестве ответа Roman ZhukovModerator 19 февраля 2013 г. 8:15
    29 января 2009 г. 9:00
    Отвечающий
  • Dmitriy Kostylev написал:

    Это ограничение на один запрос и избежать его можно разумным проектированием приложения.

    Думаю, 1С-никам лучше разобраться, зачем в запросе используется такое большое количество таблиц. Скорее всего, одна и та же там подключается по нескольку раз.



    Трабл в том, что 1С говорит - делов не знаем - идите к Микрософту.
    А тут наоборот....
    Движок в 1С сделан так, что ты готовишь запрос на языке 1С и потом даешь ей команду его выполнять. Что проиходит далее пока не известно, т. к. обработка начинается с Запрос.Выполнить ().
    zhogov
    1 февраля 2009 г. 20:22
  • Формально, их ответ означает, что 1С несовместима с MSSQL Server.
    Можно попробовать намекнуть им на то, что пожалеутесь в MS - ограничение на 256 таблиц в запросе документировано и претензии предъявлять на эту тему нельзя. Продукт 1С насколько я понимаю, сертифицирован (или что-то типа того) на совместимость с SQL Server и обязан учитывать данное ограниечение.

    Неформально - во-первых вряд ли они это исправят. :)
    Во-вторых, посмотрите, не слишком ли мудреная структура.
    Воспользуйтесь профайлером, посмотрите, что за запрос приходит на сервер. (Событие BatchStarting, есть в трассе по умолчанию)
    Попробуйте попросить помощи тут: http://www.sql.ru/forum/actualtopics.aspx?bid=63
    все-таки в самой замороченной структуре для 256 таблиц нужно 256 полей Вряд ли Вам действительно нужно такое количество. ;)

    • Помечено в качестве ответа Roman ZhukovModerator 19 февраля 2013 г. 8:16
    1 февраля 2009 г. 23:00
    Отвечающий
  • Это косяк проектировки приложения. Выйти на 256 таблиц запросом 1С можно, если не соблюдать банальные рекомендации вендора. Как правило, на претензии к превышению 256 таблиц 1С отвечает - "это ограничение SQL-сервера, столкнуться с ним - значит иметь плохо написанный запрос".
    12 февраля 2013 г. 6:34