Тормоза Sql версии 1С 7.7

Тема в разделе "1C и всё что с ней связано", создана пользователем Programmer_Hard, 21 янв 2009.

Статус темы:
Закрыта.
  1. Programmer_Hard

    Programmer_Hard Гость

    Недавно перенесли базу 1с7 бух учет из дбф в скл
    (Файл итогов был очень большим 2Гб, поэтому и перешли на скл).
    Сравнил работу дбф версии и скл на некоторых доках. Оказалось что в дбф версии запрос вида:
    БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
    БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура, Товар,,);
    БухИт.ВыполнитьЗапрос('01.01.00',ДатаДок, "41.1", "60.1",,3,,);
    выполняется мгновенно.
    А для скл версии выполняется несколько минут...
    Почему такая огромная разница выполнения запроса бух итогов!!!?
    Сервер Q6600 4Gb. Win server 2003. Sql server 2000 sp3a.
     
  2. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Сначала рекомендации:
    1. Поставить SP4 на SQL

    2. Поставить
    SQL2000-KB899761-v8.00.2040-x86x64-ENU.exe
    SQL2000-KB916287-v8.00.2187-x86x64-ENU.exe

    3. Проверить модель логирования базы. Если стоит Full, исправить на Simple.

    Теперь пояснения:
    Вам только кажется, что запрос на ДБФ выполняется быстрее. Разница в том, как работают запросы в ДБФ и СКЛ. Вы уверены, что вас интересует такой большой период, как у вас установлено в запросе? Может, стоит отказаться от работы с бухитогами? Собственно, они ж предназначены не для того, чтобы работать в оперативном режиме. Или посмотреть в сторону использования прямых запросов к базе данных...

    Ну и еще добавлю. Данные вашего сервера ни о чем не говорят. Важны настройки сети, по какому протоколу работает 1С с сиквелом...
     
  3. Programmer_Hard

    Programmer_Hard Гость

    Где это смотреть?

    Я бы и рад отказаться от бух итогов.
    Задача стоит такая :
    В таб часть дока добавляется номенклатура. Нужно определить сколько и на какую сумму поступала данная номенклатура на склад, указанный в доке. Для того чтобы расчитать цену = сумму/кол-во.
    Код (Text):
    БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
    БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура, Товар,,);
    БухИт.ВыполнитьЗапрос('01.01.00',ДатаДок, "41.1", "60.1",,3,,);
    Может есть оптимальнее способ, но пока не нашел (
     
  4. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    Странный подход...
    Вообще же цену (себестоимость?) определяют так:
    СуммаОстаток\КоличествоОстаток*КоличествоСписания.
    Исходя из этого, требуются не все обороты, а конечный остаток. Следовательно, в вашем запросе первая дата становится равной ДатаДок. Но и это будет не совсем правильно, в том случае, если документ уже был проведен.
    Запрос надо выполнять на СформироватьПозициюДокумента(ТекущийДокумент()-1)
    В книжке по администрированию MS SQL
     
Загрузка...
Похожие Темы - Тормоза Sql версии
  1. Kizarek86
    Ответов:
    17
    Просмотров:
    3.989
  2. Kizarek86
    Ответов:
    16
    Просмотров:
    5.468
  3. mrtg
    Ответов:
    0
    Просмотров:
    45
  4. mrtg
    Ответов:
    14
    Просмотров:
    209
  5. Allegro
    Ответов:
    3
    Просмотров:
    111
Статус темы:
Закрыта.

Поделиться этой страницей