Имя: Пароль:
1C
 
Ошибка SDBL
0 ORGANIZATOR
 
24.05.07
14:30
Возникает ошибка:
Ошибка SDBL. Для исполнения запроса недостаточно памяти, размер выборки превышает ХХХХХ байт.

Как её можно устранить?
1 sapphire
 
24.05.07
14:31
поищи по форуму. уже было
2 Salvador Limones
 
24.05.07
14:31
Увеличить память, перегрузить COM
3 sapphire
 
24.05.07
14:32
(2) Сейчас автор ветки поймет тебя неправильно и взапраду пойдет добивать память :)
4 AntonioS
 
24.05.07
14:44
вот, кстати, дурацкая ошибка.
выходные данне на экран умещаются, а выборка зашкаливает
5 IceSer1
 
24.05.07
15:20
сервер приложении рекомендуется иногда перегужать
6 ORGANIZATOR
 
24.05.07
15:36
Такая ошибка возникает из-за особенности использования памяти сервером 1С:Предприятия. Это сообщение выдается в том случае, если в процессе получения выборки из базы данных в виртуальном адресном пространстве сервера 1С:Предприятия (в клиент-серверном варианте) или клиентского приложения 1С:Предприятия (в файловом варианте) остается свободными меньше 1Gb. При получении такого сообщения необходимо проанализировать запрос, порождающий столь большой результат, и модифицировать его так, чтобы размер результата уменьшить.
Когда на сервере создаются большие коллекции значений (например, выгружаются в таблицы значений большие результаты запроса).
Переиспользование зарезервированной под такие значения памяти возможно только для размещения в памяти аналогичных значений, а для других целей зарезервированная таким образом память не используется.
Например, для исполнения запроса система не сможет выделить занятую таким образом память.
Объем памяти, доступный на сервере 1С:Предприятия, можно увеличить с 2GB до 3GB. При этом максимальный объем одной выборки увеличится с 1GB до 2GB. Для этого запустите утилиту: Start/ Settings/ Control Panel/ Administrative tools/ Component Services. В ней выполните: Console Root/ Component Services/ Computers/ My computer/ COM+ Applications/ 1CV8/ Локальное меню/ Properties/ Advanced/ Enable 3GB support. Однако предпочтительным решением является использование нескольких запросов.
Для решения проблемы - не рекомендуется, например, выполнять отчеты, которые запрашивают слишком много данных, т.е. отчеты со слишком "слабыми" отборами (или формировать их при низкой загрузке Сервера 1С:Предприятия)
- возможен переодический перезапуск сервера, когда занимаемая им память очевидно не соответствует активности "клиентских" рабочих мест, или регулярный перезапуск сервера в "нерабочее" время. Длительная работа сервера 1С:Предприятия (несколько суток или недель) может в некоторых случаях приводить к эффекту фрагментации виртуального адресного пространства серверного приложения. Данный эффект порой усугубляется, если в процессе работы сервера многократно и параллельно исполнялись запросы к базе данных с очень длинными текстами (1 мегабайт и более). В результате фрагментации памяти иногда может наблюдаться снижение производительности сервера 1С:Предприятия и устойчивости сервера к параллельным операциям над большими объемами данных.
Для того, чтобы избежать возможного негативного влияния фрагментации памяти, желательно при разработке конфигураций учитывать рекомендации, касающиеся использования памяти. Также можно рекомендовать периодическую (в соответствии с наблюдениями, 1 раз в неделю, в месяц...) перезагрузку серверного приложения 1С:Предприятия. Для перезагрузки можно выбрать время, когда активная работа пользователей не ведется. Более подробно об этом можно прочитать на пользовательском сайте в разделе: http://users.v8.1c.ru/Adm934.aspx
Кроме того, одно из ключевых условий эффективности использования Microsoft SQL Server состоит в создании такого набора индексов для таблиц, чтобы любые запросы к таблицам могли бы выполняться эффективно. С увеличением объема данных эффективность использования индексов может снижаться, приводя к увеличению времени выполнения операций по чтению и модификации данных. Microsoft SQL Server имеет свойство автоматического обновления статистики индексов, но для поддержания индексов в актуальном состоянии этого бывает недостаточно, поскольку Microsoft SQL Server не перестраивает индексы автоматически.
После выполнении интенсивных операций по модификации данных в таблицах базы данных может увеличиваться время выполнения запросов и операций по модификации данных.
Это обусловлено тем, что при таких операциях происходит модификация индексов, что приводит к их фрагментации и увеличению количества операций ввода-вывода при использовании индексов в процессе выполнения операций чтения и записи данных.
Решение этой проблемы:
Регулярная переиндексация таблиц базы данных с помощью команды DBCC DBREINDEX ( table_name ).
Регулярная дефрагментация индексов базы данных с помощью команды DBCC INDEXDEFRAG(database_name, table_name, index_name).
Выбор способа решения этой проблемы зависит от интенсивности операций по модификации таблиц базы данных.
Более подробно можно прочитать на пользовательском сайте в разделе http://users.v8.1c.ru/Adm347.aspx
Кроме того на диске ИТС №1 "Работаем с программами" в разделе Методической поддержки 8.0 есть статья "Рекомендации по повышению устойчивости и масштабируемости работы конфигураций".
Желательно работать на последних релизах платформы и типовых конфигураций, так как в них многие режимы работы оптимизированы.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший