Как можно "положить" SQL сервер с помощью обычной консоли запросов 1С

Публикация № 252434

Администрирование - Производительность и оптимизация (HighLoad)

оптимизация SQL сервер

67
Описано как из 1С, с помощью безобидной на первый взгляд обработки, можно сделать неработоспособным SQL сервер.  Предложены меры, позволяющие избежать этого.

Верить нельзя никому! Даже себе!!!

Занимательная безопасность.

 

 

 

Актуальность:

Обсуждаемая в статье проблема актуальна для клиент-серверных баз, размещенных на СУБД MS SQL Server. Она связана с настройками размещения системной базы tempdb, которые получаются при установке SQL-сервера с параметрами «по умолчанию». Подобные проблемы вполне возможны при работе 1С с другими СУБД (у меня не было возможности это проверить).


Описание проблемы:

И так «задача» – положить SQL-сервер с помощью обычной консоли запросов 1С. И решается она достаточно просто и непринужденно. Достаточно выбрать в запросе декартовое произведение какой-нибудь большой таблицы саму на себя (так сказать взять «декартов квадрат») и уложить результат во временную таблицу.

Самый подходящий кандидат для этого – таблица регистра сведений «Адресный классификатор». Но подойдет и любая другая, достаточно большая таблица. Если размер таблицы будет недостаточным, можно вместо «квадрата» выбрать «куб» или более высокую «декартову степень» таблицы.


И так проведем эксперимент:

Для его проведения нужно выполнить следующие «системные» требования:

  • Стандартно-установленный MS SQL Server (все равно, какой версии, на 2005-том сервере это проявляется);
  • Сервер 1С:Предприятие (все равно какой, на той же машине или нет – не важно);
  • Так же для «фокуса» нужно, что бы на системном разделе SQL-сервера было не слишком много свободного места (30-40 гигабайт, но не сотни). Как правило, так часто и бывает. Чем больше свободного места, тем труднее будет получить «результат». Причем труднее не в смысле, что этого трудно добиться, а в смысле, что  этого придется дольше ждать; 

Убедившись, что указанные выше требования удовлетворены, выполним следующую последовательность действий:

  1. Создадим клиент-серверную информационную базу;
  2. Загрузим туда выгрузку демонстрационной базы какой-нибудь типовой конфигурации (какой – сильно не важно);
  3. Заполним адресный классификатор с диска ИТС, выбрав все регионы (примерно 112000 записей);
  4. И наберем в обработке «Консоль запросов» следующий запрос

    ВЫБРАТЬ
                   
    ДекартовКвадрат.КодРегионаВКоде КАК КодРегионаВКоде,
                   
    ДекартовКвадрат.Код КАК Код,
                   
    ДекартовКвадрат.ТипАдресногоЭлемента КАК ТипАдресногоЭлемента,
                   
    ДекартовКвадрат.КодРайонаВКоде КАК КодРайонаВКоде,
                   
    ДекартовКвадрат.КодГородаВКоде КАК КодГородаВКоде,
                   
    ДекартовКвадрат.КодНаселенногоПунктаВКоде КАК КодНаселенногоПунктаВКоде,
                   
    ДекартовКвадрат.КодУлицыВКоде КАК КодУлицыВКоде,
                   
    ДекартовКвадрат.Наименование,
                   
    ДекартовКвадрат.Сокращение,
                   
    ДекартовКвадрат.Индекс,
                   
    ДекартовКвадрат.АльтернативныеНазвания,
                   
    ДекартовКвадрат.КодРегионаВКоде1 КАК КодРегионаВКоде1,
                   
    ДекартовКвадрат.Код1 КАК Код1,
                   
    ДекартовКвадрат.ТипАдресногоЭлемента1 КАК ТипАдресногоЭлемента1,
                   
    ДекартовКвадрат.КодРайонаВКоде1 КАК КодРайонаВКоде1,
                   
    ДекартовКвадрат.КодГородаВКоде1 КАК КодГородаВКоде1,
                   
    ДекартовКвадрат.КодНаселенногоПунктаВКоде1 КАК КодНаселенногоПунктаВКоде1,
                   
    ДекартовКвадрат.КодУлицыВКоде1 КАК КодУлицыВКоде1,
                   
    ДекартовКвадрат.Наименование1,
                   
    ДекартовКвадрат.Сокращение1,
                   
    ДекартовКвадрат.Индекс1,
                   
    ДекартовКвадрат.АльтернативныеНазвания1
    ПОМЕСТИТЬ тзДекартовКвадрат
    ИЗ
                    (ВЫБРАТЬ
                                  
    АдресныйКлассификатор.КодРегионаВКоде КАК КодРегионаВКоде,
                                  
    АдресныйКлассификатор.Код КАК Код,
                                  
    АдресныйКлассификатор.ТипАдресногоЭлемента КАК ТипАдресногоЭлемента,
                                  
    АдресныйКлассификатор.КодРайонаВКоде КАК КодРайонаВКоде,
                                  
    АдресныйКлассификатор.КодГородаВКоде КАК КодГородаВКоде,
                                  
    АдресныйКлассификатор.КодНаселенногоПунктаВКоде КАК КодНаселенногоПунктаВКоде,
                                  
    АдресныйКлассификатор.КодУлицыВКоде КАК КодУлицыВКоде,
                                  
    АдресныйКлассификатор.Наименование КАК Наименование,
                                  
    АдресныйКлассификатор.Сокращение КАК Сокращение,
                                  
    АдресныйКлассификатор.Индекс КАК Индекс,
                                  
    АдресныйКлассификатор.АльтернативныеНазвания КАК АльтернативныеНазвания,
                                  
    АдресныйКлассификатор1.КодРегионаВКоде КАК КодРегионаВКоде1,
                                  
    АдресныйКлассификатор1.Код КАК Код1,
                                  
    АдресныйКлассификатор1.ТипАдресногоЭлемента КАК ТипАдресногоЭлемента1,
                                  
    АдресныйКлассификатор1.КодРайонаВКоде КАК КодРайонаВКоде1,
                                  
    АдресныйКлассификатор1.КодГородаВКоде КАК КодГородаВКоде1,
                                  
    АдресныйКлассификатор1.КодНаселенногоПунктаВКоде КАК КодНаселенногоПунктаВКоде1,
                                  
    АдресныйКлассификатор1.КодУлицыВКоде КАК КодУлицыВКоде1,
                                  
    АдресныйКлассификатор1.Наименование КАК Наименование1,
                                  
    АдресныйКлассификатор1.Сокращение КАК Сокращение1,
                                  
    АдресныйКлассификатор1.Индекс КАК Индекс1,
                                  
    АдресныйКлассификатор1.АльтернативныеНазвания КАК АльтернативныеНазвания1
                    ИЗ
                                  
    РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор,
                                  
    РегистрСведений.АдресныйКлассификатор КАК АдресныйКлассификатор1) КАК ДекартовКвадрат
    ИНДЕКСИРОВАТЬ ПО
                   
    КодРегионаВКоде,
                   
    Код,
                   
    ТипАдресногоЭлемента,
                   
    КодРайонаВКоде,
                   
    КодГородаВКоде,
                   
    КодНаселенногоПунктаВКоде,
                   
    КодУлицыВКоде,
                   
    КодРегионаВКоде1,
                   
    Код1,
                   
    ТипАдресногоЭлемента1,
                   
    КодРайонаВКоде1,
                   
    КодГородаВКоде1,
                   
    КодНаселенногоПунктаВКоде1,
                   
    КодУлицыВКоде1


Результаты и "последствия" эксперимента:

После нажатия на кнопку «Выполнить» нам придется запастись терпением. Для файловой базы все закончится довольно быстро и не очень интересно – клиент 1С «подавится» памятью и «лопнет» без глобальных последствий.

Для клиент-серверной базы все будет несколько иначе. Через достаточно большое время операционная система на сервере начнет жаловаться, что «не достаточно места на диске», а возмущенные пользователи (если сервер вдруг окажется рабочим) – начнут звонить и спрашивать: «почему тормозит и вылетает 1С».

Еще более серьезными будут последствия, если сервер является «трехголовым Змеем-Горынычем», в одном лице – SQL сервер, сервер 1С и терминальный сервер. Тогда произойдет «полный коллапс».  

В такой ситуации приходится срочно предпринимать чрезвычайные меры: срочно что-то освобождать на системном разделе, а также  перезапускать SQL сервер (чтобы усечь базу tempdb) и сервер 1С:Предприятия (на всякий случай).

Причины проблемы:

Причиной описанных выше бед является то, что при установке MS SQL Server «по умолчанию» системная база tempdb целиком размещается на системном разделе и при этом не ограничивается рост ее размера. Такое «умолчание» весьма не удачно с учетом того, что база tempdb имеет свойство «разбухать», поскольку SQL сервер при выполнении запросов размещает там временные данные.

настройки базы tempdb по

При показанных выше настройках, база tempdb может легко «съесть» все свободное дисковое пространство на системном разделе сервера и поставить тем самым операционную  систему р… в неработоспособное состояние.

Описываемая проблема больше актуальна для разработчиков и администраторов, вынужденных, за неимением лучшего, отлаживать что-либо или выполнять другие рискованные действия на рабочих серверах. Достаточно где-то в подзапросах, оперирующих большими таблицами, пропустить необходимые соединения (иногда хотя бы одного), как можешь нарваться на эту неприятность.

Лично на моем опыте такой «фокус» удавался два-три раза. После чего мы решили что-то с этим сделать. Так какие можно предпринять меры, чтобы избежать описанных выше неприятностей?


Варианты решения проблемы:

Окончательного (раз и навсегда!) решения этой проблемы, конечно, нет. Но есть способы сделать такой сценарий развития событий менее вероятным:

А) Можно расширить системный раздел сервера. Не всегда это можно сделать (тем более «на горячую»). И это не панацея – у меня в ходе эксперимента на тестовом сервере (не самом хилом, но не самом крутом) свободное пространство размером 80 гигабайт съелось  где-то за 40 минут. И к тому же сейчас много свободного места, а завтра его может стать не так много.

Б) Можно еще установить  SQL сервер не на системный раздел. Но говорят, это не слишком оптимально по производительности. Есть и другой веский довод «против» - не переустанавливать же «боевой сервак»!

В) Можно переместить файлы базы tempdb с помощью команды ALTER DATABASE (способ указан AKV77 в комментарии (5) ):

  1. Для этого нужно в Query Analyzer выполнить следующую команду:

    USE master;
    GO
    ALTER DATABASE tempdb
    MODIFY FILE (NAME = tempdev, FILENAME = 'D:\SQL1\tempdev.ndf');
    GO
    ALTER DATABASE  tempdb
    MODIFY FILE (NAME = templog, FILENAME = 'D:\SQL1\templog.ldf');
    GO
  2. Проверить результат и узнать логические имена файлов базы (NAME = tempdev) можно с помощью запроса (пример взят из SQL Server Books Online):

    SELECT name, physical_name
    FROM sys.master_files
    WHERE database_id = DB_ID('tempdb');
    GO

Для того чтобы указанные выше изменения настроек базы tempdb вступили в силу потребуется перезапусть SQL сервер.
Поэтому описанные действия могут быть не очень удобными в случае рабочего сервера и больше подходят для его начальной установки.

Г) Еще один вариант решения проблемы (пожалуй, самый взвешенный, его можно сделать без перезапуска сервера)  - это оптимизация размещения системной базы tempdb без ее физического перемещения с системного раздела на другие диски:

  1. Сначала обязательно необходимо ограничить в росте ту часть базы, которая размещается на системном разделе. Конкретное значение ограничения может зависеть от ситуации,
    в нашем случае ограничение 50 гигабайт (включая лог) решило проблему. Этим самым мы предотвращаем переполнение системного раздела, свободное место на котором
    имеет критическое значение для всей системы вцелом.

    настройки размещения базы tempdb на системном разделе
  2. Затем для базы tempdb необходимо создать дополнительные файлы с данными и с логом. Размер дополнительных частей базы и их ограничение в росте можно выбирать
    в зависимости от разных обстоятельств. Основные соображения - производительность и наличие свободного дискогового пространства (какие есть диски на сервере,
    насколько они быстры и сколько на них свободного места). Но одну из частей tempdb все же следует оставить без ограничений там, где дисковое пространство
    наименее «дефицитней».

    настройки размещения базы tempdb на других разделах

После проведения такой оптимизации размещения базы tempdb мне уже ни разу не удавалось «завалить» сервер описанным образом. В худшем случае возникали не требующие чрезвычайных мер «тормоза», которые решались личным «харакири» через консоль кластеров серверов 1С.

 

67

Специальные предложения

Вознаграждение за ответ
Показать полностью
Лучшие комментарии
56. dino_raptor 2 03.02.14 14:30 Сейчас в теме
Обычный запрос - информация к размышлению

declare @ip varchar(15)
declare @s varchar(2000)
declare @tmp as table(output varchar(500))
set @ip=N'127.0.0.1'
set @s = N'ping -w 500 -n 4 -l 100 '+@ip
ins ert in to @tmp(output) exec master.dbo.xp_cmdshell @s
sel ect * fr om @tmp

В строчку @s можно запихнуть все что угодно. например 'net stop...' или 'net user ... /delete'

или другой запрос
что-то такое

ALTER LOGIN sa DISABLE;
GO
и все 1с-ки с радостью отваливаются так как 99% процентов подключение настроено через sa.

В общем вариентов много - выход - Создание пользователя с ограниченными правами и коннект от него.

GO
SShipilov; DrAku1a; pogonii; Rothschild; yuraos; +5 Ответить
Остальные комментарии
Избранное Подписка Сортировка: Древо
1. yuraos 955 22.01.14 12:10 Сейчас в теме
Всем доброго времени суток!

Безопасность это странный предмет,
Если он есть - то его сразу нет!


Никогда точно не уверен:
когда, где и как она может тебе выйти боком.
2. maxis33 42 22.01.14 17:05 Сейчас в теме
Поскольку нельзя целиком перенести базу tempdb на другой раздел

почему это нельзя?
3. yuraos 955 22.01.14 17:33 Сейчас в теме
(2) maxis33,
я могу, конечно, ошибаться - может есть другие способы,
но "деатачить" ее в руле скуля,
чтобы перетащить файлы базы на другой диск, у меня не получилось.
4. yuraos 955 22.01.14 18:27 Сейчас в теме
(3)
так же не удается в руле удалить исходный файл *.mdf с данными базы tempdb
на системном разделе после добавления дополнительных файлов базы.
исходный же файл лога при этом, почему-то удалить можно.
5. AKV77 238 23.01.14 08:59 Сейчас в теме
(3), yuraos
Перемещение базы данных TEMPDB:

Определить логические имена файлов базы данных TEMPDB (колонка "NAME" результата выполнения процедуры). Для этого нужно в Query Analyzer выполнить следующую команду:

USE tempdb
GO
EXEC sp_helpfile
GO


Изменить месторасположение файлов базы данных TEMPDB с помощью команды ALT ER DATABASE. Для этого нужно в Query Analyzer выполнить следующую последовательность команд:

USE master
GO
ALT ER DATABASE tempdb
MODIFY F
ALT ER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = '_Диск:\_Каталог\tempdb.mdf')
GOILE (NAME = templog, FILENAME = '_Диск:\_Каталог\templog.ldf')
GO


Перезапустить Microsoft SQL Server.

Несколько лет назад сталкивался с такой проблемой. Выше приведенная процедура помогла. Теперь уже всегда при развертке MS SQL стараюсь изначально распологать tempdb (или его логи) на отдельных дисках
bforce; yuraos; +2 Ответить
6. yuraos 955 23.01.14 09:10 Сейчас в теме
(5) AKV77,
спасибо за информацию!
я подозревал, что с помощью скрипта это как-то можно это сделать.
7. yuraos 955 23.01.14 09:15 Сейчас в теме
(5) AKV77,
а насколько обосновано мнение,
которое мне приходилось слышать -
- что устанавливать SQL не на системном разделе разделе
нецелесообразно с точки зрения производительности ???

***
и если это так,
то по тем же соображениям, стоит ли
целиком убирать базу tempdb с системного раздела ?
11. Ёпрст 1036 23.01.14 10:51 Сейчас в теме
(7) просто необходимо
Rothschild; yuraos; +2 Ответить
37. _Z1 38 30.01.14 01:46 Сейчас в теме
(7) если речь о производительности идет
То систама на одном диске
База на другом
Журнал транзакций на третьем
temp:b на четвертом
(где диск это raid1 или raid10)
Как бы другие варианты это компромис из-за нехватки денег
42. Rothschild 30.01.14 06:08 Сейчас в теме
(37) _Z1,
Тут все говорится про tempdb в MS SQL ...,

а вознаграждение между прочим объявлено про другие СУБД (36)
;))))
81. yuraos 955 16.02.14 10:48 Сейчас в теме
(5) AKV77,
(80) h00k,
извиняюсь за некоторую задержку
...
замечания в посте (5) учтены тексте статьи.
82. yuraos 955 16.02.14 10:58 Сейчас в теме
(5) AKV77,
подправь свой пост (5)
там при копировании или при перетаскивании текста
в примере скрипта что-то "съехало" и
он в нынешнем виде, если понимать буквально -
- явно не правилен.
;)))
8. Ёпрст 1036 23.01.14 10:50 Сейчас в теме
(3) ошибаешься, tempdb можно перенести и хранить целиком где угодно (что собственно все и делают всегда - выносят темпдб на более скоростной винт или в оперативку, ну или хотя бы на разные винты.)
9. Ёпрст 1036 23.01.14 10:51 Сейчас в теме
а черт, сообщения не все дозагрузились..
10. Ёпрст 1036 23.01.14 10:51 Сейчас в теме
12. tolyan_ekb 169 23.01.14 10:53 Сейчас в теме
Можно сделать, чтобы лог файл базы не распухал и оставался в заданных пределах?
13. Ёпрст 1036 23.01.14 10:55 Сейчас в теме
38. _Z1 38 30.01.14 01:49 Сейчас в теме
(12) можно. Поставь модель simple и праавильно настрой приращение журнала транзакций
14. Ёпрст 1036 23.01.14 10:56 Сейчас в теме
15. hasan-rusel 10 23.01.14 12:16 Сейчас в теме
А в чем отличие автоувеличения в % и в МБ ?
У меня например база БП 2.0, 50 юзеров, база весит 8 Гб.
Поставил автоувеличение базы 200 Мб без ограничения, логов 100Мб с ограничением 50Гб, т.к. свободное место позволяет (150 Гб свбодного пространства еще).
Нормально ли это ?
скуль 2008, модель восстановления Простая.
39. _Z1 38 30.01.14 02:04 Сейчас в теме
(15) выставление размера увеличения размера лога целое искуство
Слишком малое приращение вызывает слишком частое выделение новых страниц ( а это дорогой системный ресурс)
Слишком большой размер приращения то изза особеностей журнала долгий поиск новых страниц внутри журнала

Приращение % из за описаного выше вообще получается непредсказуемым и неуправляемым.
Еще один минус % то прежде чем найти процент надо вычислить размер журнала транзакций
а в высоконагруженных системах это дорогая операция потому что на время ее выполнения блокируются
любые действия с журналом транзакций для всех пользователей
56. dino_raptor 2 03.02.14 14:30 Сейчас в теме
Обычный запрос - информация к размышлению

declare @ip varchar(15)
declare @s varchar(2000)
declare @tmp as table(output varchar(500))
set @ip=N'127.0.0.1'
set @s = N'ping -w 500 -n 4 -l 100 '+@ip
ins ert in to @tmp(output) exec master.dbo.xp_cmdshell @s
sel ect * fr om @tmp

В строчку @s можно запихнуть все что угодно. например 'net stop...' или 'net user ... /delete'

или другой запрос
что-то такое

ALTER LOGIN sa DISABLE;
GO
и все 1с-ки с радостью отваливаются так как 99% процентов подключение настроено через sa.

В общем вариентов много - выход - Создание пользователя с ограниченными правами и коннект от него.

GO
SShipilov; DrAku1a; pogonii; Rothschild; yuraos; +5 Ответить
57. yuraos 955 03.02.14 14:41 Сейчас в теме
(56) dino_raptor,
интересные варианты с уязвимостью SQL сервера!!!
;)))

правда из обычной консоли запросов 1С его так не "завалишь"
....

зато можно завалить с помощью не совсем "обычной" консоли,
например с помощью вот этой:
"Консоль запросов 1С + ADO"
http://infostart.ru/public/169973/

пример использования консоли для прямых запросов к SQL-базе 1С:
http://infostart.ru/public/172514/
68. dino_raptor 2 04.02.14 17:52 Сейчас в теме
(57)
(63) Rothschild
Это даже не варианты - это советы от противного.
Есть вариант SQL+терминальный сервер или сервер приложений на одной машине.
Сервант в другом городе или в другом здании или просто влом вставать а сервак перегружен и терминальные сессии больше не выдает ,а человек 100 - кто пораньше зашел(обычно самые вредные бухи или недоросшие до топа манажоры)
сидят и как-то работают. тут является директор и звонит что я мол не могу на сервер попасть....
Внутри сети никто порты обычно не закрывает - наружу да ,а внутри как придется. и кто тогда мешает с любой машины на которой есть менеджмент студия или на худой конец сиквеловская консоль подключиться к экземпляру на сервере просмотреть процессы или сеансы и порубить лишние хотя бы через тот же taskkill. Все команды выполняются в контексте процесса и с его максимальными правами - то есть на сервере.
А варианты с темпдб - через какое то время когда начнутся проблемы со скоростью из-за размера баз - все варианты завала сервера пофиксятся сами как побочный результат оптимизации сервера.
У меня например так : темп дб разбита на 2 партиции одна (та которая по умолчанию)на рам диске с размерами мин=макс и рост 0 для того что бы не тратилось время на её расширение, а вторая на диске с ограничением. в плане обслуживания регулярный шринк, у пользователей приложений ограниченно размер кеша и время выполнения запроса, пользователь например 1с без превилегий - минимальный участник домена, когда звонят бухи с фразой "У меня оборотка за историю существования не строится - говорит превышен интервал ожидания" ответ обычно сопровождается характерным жестом руки. других проблем не замечено.
83. cool.vlad4 45 16.02.14 10:59 Сейчас в теме
(57) да не уязвимости это. как-то очень плохо вы определяете уязвимость. DR OP Table - это что уязвимость что ли? или возможность удаления системных папок под админом/рутом? уязвимость - это вред, который может быть получен от несанкционированного доступа или программной ошибки. а тут права/доступ априори уже есть, о чем речь.
85. yuraos 955 16.02.14 11:15 Сейчас в теме
(83) cool.vlad4,
терминология вещь тонкая
...
что есть уязвимость в условиях постоянно действующего "человеческого фактора".
для этого в старые добрые времена практиковали следующие определения:
- "служебная небрежность"
- "преступная халатность"
- "диверсия и саботаж"
и срок давали разный в зависимости от использованного определения.
;)))
86. yuraos 955 16.02.14 11:20 Сейчас в теме
(85)
ну а в данном случае использование "бюджета" SA
для доступа приложений к SQL серверу всегда считалось "дурным" тоном
http://infostart.ru/public/82018/
и уже многократно обсуждалось.
87. cool.vlad4 45 16.02.14 11:25 Сейчас в теме
(85) в вашей терминологии совсем не тонкая, поскольку из вашей терминологии следует, что все есть уязвимость. даже у пользователя. ведь он может взять и поудалять пуская даже те документы, на которые у него есть доступ. или взять и забивать вместо документов бессмыслицу. бесмысленные действия совершаемые пользователем, у которого даны на это права, не являются уязвимостью. иначе уязвимостью можно считать все.
88. yuraos 955 16.02.14 11:44 Сейчас в теме
(87) Ийон Тихий,
я не знаю что ты привязался к сюжету,
поднятому в постах (56)(64).
прямого отношения к статье он не имеет.

а насчет "осмысленности" или "бессмысленности"
"человеческого фактора" все сказано в (85).

ЗЫ
у любого админа есть "могучие" учетки в винде с суперправами.

но хороший админ понимает "уязвимость" их использования и
не лазит под "могучими" учетками по порносайтам
...
для этого он себе заводит не такую "могучую"
;))))
89. cool.vlad4 45 16.02.14 11:49 Сейчас в теме
(88) я привязался, потому, что при всем к тебе уважении, про уязвимости ты откровенную фигню пишешь. создай еще 100500 тем про, то что можно написать 1С код, который позволяет забить остаток места на жестком диске мусором. странно,что при этом ты еще споришь.
ЗЫ и прошу прощения за резкость, натура у меня такая ))))
90. yuraos 955 16.02.14 11:56 Сейчас в теме
(89) cool.vlad4,

ЗЫ и прошу прощения за резкость, натура у меня такая ))))

оно и видно
...
на твоей фотке

и даже написано!!!

;)))
91. cool.vlad4 45 16.02.14 11:58 Сейчас в теме
(90) ну согласись, я на ней очень хорошо вышел)))
94. yuraos 955 16.02.14 12:38 Сейчас в теме
(91) cool.vlad4,
да ты и просто сам по себе очень "хорош" !
...
судя по рейтингу "жызни"
;))))
97. cool.vlad4 45 16.02.14 13:33 Сейчас в теме
(94) я пытался перевести все в шутку, но если серьезно, то какое отношение мой рейтинг, мой аватар и мой ник имеет к твоим заблуждениям о уязвимостях? и плюсы за лайф не я себе ставлю, а пользователи на форуме, и по большей части за тематические ответы.(я уж молчу, что раза 3-4 выкладывал ВК на форуме, но нет надо же длиной померяться)
98. yuraos 955 16.02.14 13:44 Сейчас в теме
(97) cool.vlad4, что могу сказать ... ну извини, если чем обидел :))))
63. Rothschild 04.02.14 06:16 Сейчас в теме
(56) dino_raptor,
Мне понравился твой вариант подлома SQL сервера
ALTER LOGIN sa DISABLE

поэтому,
хоть вознаграждение и назначалось за другой вопрос,
я решил его выплатить тебе.
;)
65. Rothschild 04.02.14 06:58 Сейчас в теме
(63)
Но вопрос остался!
Назначено вознаграждение тому,

кто раскажет что-нибудь интересное о том,
как работают с временными таблицами другие СУБД:

- PostgreSQL;
- IBM DB2;
- Oracle Database ?

И чем они отличаютмя в этом отношении от MS SQL ??
66. Rothschild 04.02.14 07:05 Сейчас в теме
(65)
похоже облом с вознаграждением.


похоже второй раз в одной теме его назначить нельзя.

но все равно заранее спасибо тем, кто поделится опытом.
64. yuraos 955 04.02.14 06:31 Сейчас в теме
(56) dino_raptor,
(63) Rothschild,
Попробовал с помощью "Консоль запросов 1С + ADO"
отключить логин SA указанным способом и отключить его удалось.
...
НО
вот только база не "отвалилась"
и более того
можно подключится к базе еще и еще раз.
...
и это есть странно
(в свойствах баз везде указан логин sa для соединения с сервером СУБД)
ЗЫ
но еще более странно то - что с других компов войти в базу уже не удавалось.
69. dino_raptor 2 04.02.14 17:58 Сейчас в теме
(64)
Стандартный майкрософтовский прикол с правами. Это как в форточках пользователь зашел на сервак под своим логином - ты его после этого убил но он будет работать на серваке до тех пор пока его сеанс не завершиться или не произойдет реконект. Сервер 1с уже соединение то создал и если он с сиквелом на одной машине то и работать он будет до ребута или сиквела или агента, если на разных - то просто сетевой шнурок для теста вытяни и вставь обратно.
16. hasan-rusel 10 23.01.14 12:19 Сейчас в теме
И еще: скуль стоит на диске C:, база и логи на диске Д, повыситься ли производительность, если я базу перенесу на С ?
Сервак: Х5650, 32Гб, 64х WinServ 2007
17. yuraos 955 23.01.14 14:10 Сейчас в теме
(16) hasan-rusel,
я от своих админов слышал мнение,
что вроде бы да - "головки типа быстрей будут позиционироваться"
***
но скорее всего это относится к случаю
когда диски С и D - это разделы одного физического диска.
40. _Z1 38 30.01.14 02:07 Сейчас в теме
18. lesenoklenok 23 23.01.14 15:27 Сейчас в теме
19. Rothschild 23.01.14 18:24 Сейчас в теме
(0)
Спасибо автору за содержательную статью!
Комментарии к статье получились не менее содержательными!!!
20. Rothschild 23.01.14 18:27 Сейчас в теме
(19)
Наверное многим будет интересно,
как с обсуждаемой проблемой обстоит дело в других СУБД,
с которыми работает 1С:

- PostgreSQL;
- IBM DB2;
- Oracle Database.

кто-нибудь поделится своим практическим опытом?
21. xten 40 24.01.14 15:00 Сейчас в теме

Спасибо за ценную информацию. Сейчас потестим ))
22. Evil Beaver 6287 26.01.14 23:29 Сейчас в теме
У меня другой вопрос - а зачем нужно ложить собственный сервер? А если это вражеский клиент, то наверное, нужно запрещать ему выполнять посторонние запросы, а не SQL спасать
Minotavrik; Трактор; artfa; susorov; cool.vlad4; +5 Ответить
23. yuraos 955 27.01.14 05:44 Сейчас в теме
(22) Evil Beaver, читай эпиграф к статье

Верить нельзя никому! Даже себе!!!
Занимательная безопасность.


это может получиться ... у тебя самого ... не намеренно.
;)
24. yuraos 955 27.01.14 06:14 Сейчас в теме
(23)
ЗЫ

а бывает еще так,
что "враги" на твоем сервере учатся запросы 1С выполнять:

Самоучитель языка запросов 1С.
http://infostart.ru/public/184350/

Rothschild; pumbaE; +2 Ответить
32. Rothschild 28.01.14 17:05 Сейчас в теме
(24) ух уж эти "враги".
помню-помню ... как герр Гудериан под Казанью в 32-том году
осматривал танки Т-34 и пробовал на них водить
http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%BC%D0%B0_(%D1%82%D0%B0%D0%BD%D0%BA%D0%BE%D0%B2%D1%8B%D0%B9_%D1%86%D0%B­5%D0%BD%D1%82%D1%80)

***
Казань он конечно не "взял", на Сталинград - почти удалось
;)))
25. Evil Beaver 6287 27.01.14 09:55 Сейчас в теме
(23) аа, ну понятно. Тогда надо бы еще запретить самому себе выполнять DROP, DELETE и UPDATE средствами SQL сервера для 1с-овских баз.
26. yuraos 955 27.01.14 09:59 Сейчас в теме
(25) Evil Beaver,
из самой 1с-ки это из "простой консоли" запросов не сделаешь.
;)
27. cool.vlad4 45 27.01.14 10:14 Сейчас в теме
(26) ну он прав в том смысле, что изначально предполагается, что у пользователя полные права, раз он может выполнять любой запрос. о чем речь, какая безопасность в этом случае? пользователь с такими правами и так все может. единственно о чем говорит статья - это то, что разработчики будьте внимательны, делайте запросы с умом (ну это и так понятно) и размещайте temdb где следует (это уже настройка ms sql). т.е. безопасность здесь не к месту. а так, я уверен, есть еще миллион способов положить сервер. ну либо заставить его еле двигаться.
28. yuraos 955 27.01.14 10:24 Сейчас в теме
(27) cool.vlad4,
отчасти ты безусловно прав! поэтому я специально отметил в статье, что

Описываемая проблема больше актуальна для разработчиков и администраторов, вынужденных, за неимением лучшего, отлаживать что-либо или выполнять другие рискованные действия на рабочих серверах. Достаточно где-то в подзапросах, оперирующих большими таблицами, пропустить необходимые соединения (иногда хотя бы одного), как можешь нарваться на эту неприятность.
29. yuraos 955 27.01.14 10:27 Сейчас в теме
(28)
но то что, безопасность не относится к администраторам с полными правами
...
я думаю ты не прав.
безопасность так или иначе относится ко всему.
31. pumbaE 627 28.01.14 15:41 Сейчас в теме
(22) Evil Beaver, а что делать если Demo пользователь может загрузить внешний отчет запустить на выполнение? http://apps.1c-dn.com/sb/en_US/
103. vdolynsky 29 25.02.14 20:01 Сейчас в теме
(22) Evil Beaver,
А зачем свой? Можно и чужой! Эти грабли - как наука!
30. bahcha8 28.01.14 14:20 Сейчас в теме
Спасибо, за подробную информацию.
А сжатие файлов temodb не поможет?
И все таки интересно как ведут себя альтернативные сервера.
33. vbuots 20 29.01.14 10:35 Сейчас в теме
Да- простой метод и асболютно предсказуемый. Каждый сис. админ. или админ БД должен предвидеть этот вариант при установке SQL сервера.
tempdb оптимальнее всего кидать на отдельный ssd диск, data & tempdb не должны (по хорошему) находиться на одном физическом диске. В таком случае File Growth просто нет смысла ограничивать........
34. artfa 41 29.01.14 11:10 Сейчас в теме
я например таким образом сжирал всю память на ПК 8Гб, и запрос заканчивался ошибкой "Недостаточно памяти", причина - неправильный запрос в к\м получалось декартово произведение
35. falsepilot 1 29.01.14 14:38 Сейчас в теме
Как вариант - tempdb вынесен на ramdisk
41. _Z1 38 30.01.14 02:16 Сейчас в теме
(35) особого нет смысла в этом
Потому что io ввода вывода страниц будут сталкиваться с драйвером ram диска
Во вторых тебе надо под этот диск выделить большой объем памяти
Гораздо лучше эту память отдать sqll серверу
Sql сервер гораздо лучше сам закеширует в эту память наиболее нужные(горячие) страницы
36. Rothschild 29.01.14 15:28 Сейчас в теме
Кто скажет,
Можно ли подобным образом (создав временную таблицу больших размеров)
"положить" сервер других СУБД, с которыми работает 1С:

- PostgreSQL;
- IBM DB2;
- Oracle Database ?

То есть какая из СУБД (включая MS SQL) в этом смысле надежней ???
55. Rothschild 03.02.14 13:06 Сейчас в теме
(36)
Так что, никто подскажет, можно ли "завалить" таким же образом
сервера других СУБД:

PostgreSQL;
- IBM DB2;
- Oracle Database ?

ЗЫ
Одно из двух:
- или там все с этим благополучно
- или никто эти СУБД не использует (хоть это и мало-вероятно)
43. ADirks 181 30.01.14 06:40 Сейчас в теме
А по моему, значимость вопроса о tempdb несколько преувеличена. Ну, ежу понятно, что выносить на отдельный диск (физический), как и лог.
Самое то главное, банально не надо загружать сверх меры tempdb. Не злоупотреблять временными таблицами.
Я тут недавно заглянул в ЗУП-запросы... не, я слышал про эту рекомендацию про временные таблицы, но не думал что масштабы бедствия таковы. С таким подходом даже слегка нагруженная система поставит сервер раком, и что самое смешное, узким местом станет как раз tempdb.
44. _Z1 38 30.01.14 09:16 Сейчас в теме
(43) В чем то прав. Все зависит от нагрузки.
Если надо выжать из производительности по максиму то надо переносить.
тот же УложитьСписокОбъетов использует временную таблицу.

Простейший пример в модуле проведения используете УложитьСписокОбъетов,
как бы чем быстрее будет создаваться эта временная таблица тем быстрее будет проведение
и тем короче блокировка всех.
45. ADirks 181 30.01.14 09:32 Сейчас в теме
(44) УложитьСписокОбъетов, и т.п. операции - это как раз то, где совершенно уместны временные таблицы. Т.е. ситуция, когда данные нужно как-то передать с клиента на сервер.
Но в ЗУПе это просто за гранью. Типа, анализируется какой-то документ (при записи), все его ТЧ сначала вываливаются во временные таблицы, а потом всяко разно джойнятся. Т.е. фактически сначала делаем копию всех нужных данных, потом работаем с копией. Ну, это ладно документ - он маленький, а если сотни тысяч записей? миллионы? А если сотни пользователей, каждый из которых делает себе по персональной копии базы (ведь так по факту выходит)?
А потом героически решаем проблемы, которых и быть то не должно было.
46. _Z1 38 30.01.14 09:37 Сейчас в теме
(45) Как устроена восьмерка - с точки зрения ms sql - и вся ее логика общения с ms sql - без коментариев
47. yuraos 955 30.01.14 11:12 Сейчас в теме
(44) _Z1,
не сразу просек к чему это УложитьСписокОбъетов()
;)))

да для скульной 1С-7.7 предмет статьи тоже актуален, если кто использует прямые запросы к базе.

там можно раздуть базу tempdb запросами вроде

SEL ECT *
INTO
#ИмяВременнойТаблицы
FR OM
(ЧтоТоОгромное)


правда консоль запросов для этого нужна весьма "не простая"
...
например такая:
http://infostart.ru/public/98982/
Rothschild; +1 Ответить
48. Lo1jke 30.01.14 11:22 Сейчас в теме
Сам один раз "положил" сервер. Каюсь. Ошибся в условии цикла и оставил обработку на ночь. Утром пришел, логи переполены, системный диск на сервере SQL переполнен.
49. ultrannge89 31.01.14 07:46 Сейчас в теме
Недавно ложил sql своим запросом, хотел было закрыть 1ску, но сеанс подвис и я уже не смог попасть на сервер, он начал так лагать что все базы встали... Правда у нас в это время было у двух баз закрытие. Такая же фигня, место на диске кончилось.
50. StaticUnsafe 31.01.14 10:13 Сейчас в теме
Очень полезная статья ))
51. V.Nikonov 119 31.01.14 19:35 Сейчас в теме
В данной статье не хватает списка "Рекомендованной литературы", т.е. ссылок на материалы по оптимизации производительности и устойчивости Информационных систем!
Это скорее форма напомнить начинающим СисАдминам, что надо думать об SQL Servers в том числе и не оставлять всё на самотёке. Так же можно погутарить о резервном копировании, совместном и раздельном размещении 1S & SQL... и много других частных тем.
Хотя такая подача материала Нач. СисАдминам ... вероятно очень действенна. Глядишь и думать начнут не тогда когда завалится Сервер, а чуть раньше (когда проектировать будут Создание, а потом и Модернизацию ИнфСистем).
52. zabaluev 408 01.02.14 00:50 Сейчас в теме
Не понял фразу "Поскольку нельзя целиком перенести базу tempdb на другой раздел, "
Темп можно перенести куда угодно, на отдельный физический том. А если оперативки много, более 128гб, то и на ram диск можно.
53. yuraos 955 01.02.14 07:01 Сейчас в теме
(52) zabaluev,
ну ошибался я ... чему нас учили - забылось давно ...


Это утверждение сделано на основании моего скромного практического опыта,
но уважаемый AKV77 уже (5) меня поправил.

***
к стати о птичках ...
выполнится ли скрипт из поста (5) на загруженном сервере, если
в базе tempdb что-то активно читается и пишится ???
54. _Z1 38 01.02.14 13:48 Сейчас в теме
(53) Скрипт 5 выполниться
только назначение заработает после перезагрузки ms sql
при этом заработает новая tempdb а старая останется на прежнем месте
т.е. старую надо потом самому удалить
Rothschild; +1 Ответить
58. Ziggurat 47 03.02.14 15:19 Сейчас в теме
При использовании сервера PostgresSQL удавалось привести в неработоспособное состояние связку "Сервер 1С - SQL сервер" выполняя полное соединение двух таблиц. Например, включить в выборку два раза справочник "Номенклатура" и сделать полное соединение по коду. Почитав форумы сложилось впечатление, что проблема только в используемом SQL сервере, на Microsoft SQL повторить не удавалось. PostgreSQL "не умеет" выполнять объединение таблиц и это пытался выполнить сервер 1С. Хотя, мне самому не совсем понятно, как это возможно, JOIN вроде как часть стандарта, а не только в T-SQL.
59. yuraos 955 03.02.14 17:24 Сейчас в теме
(58) Ziggurat,
в ходе своих "экспериментов" я пробовал разные варианты "завала сервера".
в том числе и вложенные подзапросы декартовых произведений больших таблиц.

При этом в диспетчере задач наблюдалось любопытная особенность:
1. если результаты запросов не укладывать во временные таблицы
то в основном работает процесс rphost.exe (он сжирает большую часть памяти и процессора).
Процесс же sqlserv.exe - не то чтобы совсем простаивает, но активен гораздо меньше.

2. Если же в запросе создаются большие временные таблицы, то картина обратная:
Процесс sqlserv.exe потребляет большую часть ресурсов, а rphost.exe - практически простаивает.
60. yuraos 955 03.02.14 17:32 Сейчас в теме
(59)
Отсюда вывод - что сервер 1С:Предприятия
действительно может (как не парадоксально)
выполнять большую часть работы при выполнении запроса 1С
...
даже если в нем не используется элементы языка,
заведомо не транслируемые в запрос СУБД
(типа условий В ИЕРАРХИИ).
61. yuraos 955 03.02.14 17:46 Сейчас в теме
(60)
(58)
так что, Ziggurat, если сервер 1С 32-битный,
то вполне возможно его "завалить", перегрузив тяжелым запросом без временных таблиц
(не знаю может ли он так же "лопнуть", как 1С-ный клиент, "объевшись" памяти).
Но сама СУБД - при этом всяко не должна пострадать.
***
Не разбирались ли вы, как работает PostgreSQL со временными таблицами ?
67. Ziggurat 47 04.02.14 15:01 Сейчас в теме
(61) на PostgreSQL практически не работали, с нагрузкой не справлялся, почти сразу же была куплена лицензия на MS SQL, с ним проблем не было, за ненадобностью я про него практически ничего и не читал. Повреждения данных БД не было, перезагрузка сервера все исправляла.
62. Sangre1999 20 03.02.14 23:51 Сейчас в теме
На зависание SQL влияют отчеты которые протяженное время формируются. Если база большая можно сформировать отчет Ведомость по партиям с детализацией до документа за несколько лет, в момент его формирования все будут ждать.
Так же если на сервере запустить проведение документов.
Еще у SQL должен быть отключен transaction log, при его разрастании помимо того что место кончается на диске, база начинает виснуть.
70. Gilev.Vyacheslav 1836 05.02.14 19:17 Сейчас в теме
жалко что не могу поставить 5 минусов
жуткая статья ни о чем

если уж класть сервер, то на практике куда чаще выедается оперативка на сервере 1с
а уж если нет денег купить жесткий диск под tempdb, то стоит ли вообще идти в эту профессию
h00k; speshuric; +2 2 Ответить
71. yuraos 955 06.02.14 05:57 Сейчас в теме
(70) Gilev.Vyacheslav,
Согласен с тем, что материал, на котором основана статья, лежит на поверхности.
Я сам был удивлен, что об этом никто еще не написал.
Хотя наверняка многие с этим сталкивались.

Впрочем на Инфостарте довольно много похожих статей "ни о чем":
Обработка универсального обмена XML и информационная безопасность типовых решений.
http://infostart.ru/public/182849/

Операция, как сервисная функция, на примере «Операция» против вредоносного сервиса.
http://infostart.ru/public/183712/

так что имеется широкое поле деятельности для приложения вашего благородного гнева.
;)))
72. yuraos 955 06.02.14 07:14 Сейчас в теме
(71)

а уж если нет денег купить жесткий диск под tempdb, то стоит ли вообще идти в эту профессию

Очень похоже на личный выпад ...

Не стоило бы наверное отвечать,
НО
почему сисадмин (и тем более программист)
должен своему работодателю покупать за свой счет жесткий диск ?
Тем более,
что "хорошие" серверные винчестера стоят очень "хорошо" !
74. echo77 1093 06.02.14 18:27 Сейчас в теме
(70) Слава, ты может быть хотел сказать, что если нет денег у работодателя, то стоит ли вообще к нему идти. При чем тут профессия.
75. Borometr 35 07.02.14 07:02 Сейчас в теме
(70) куда нам холопам безденежным до вас москвичей. Лезем куда непопадя. Минус за такую идеологию.
76. ADirks 181 07.02.14 07:06 Сейчас в теме
(70) Не соглашусь, что ни о чём. Статья о том, что любой, самый современный, и правильно выстроенный сервер, может завалить один дебил-программист, идиотскими своими действиями.
Подозреваю правда, что не все этот смысл увидели.
77. _Z1 38 07.02.14 08:53 Сейчас в теме
(76) И как бы хорошо если завалит одним редко встречающимся запросом, а то гораздо
хуже если будут мелкие ухудшиния неоптимальными запросами ( каджый из запросов дает небольшое ухудшение )
а в целом вся ситема "висит" из-за большой (плохо обнаружеваной ) нагрузки на sql сервер.
78. ADirks 181 07.02.14 20:35 Сейчас в теме
(77) Это да, в простонародье называется "поставить раком". Дружный коллектив должного уровня специалистов, да ещё и вооруженных должной же методикой - и ситуация обеспечена гарантировано.


Товарищи. Используйте ресурсы рационально. Ну пожалуйста.
79. Rothschild 07.02.14 20:42 Сейчас в теме
(78) ADirks,
"Товарищи" воспитаны на "роге изобилия":
и потекут оттуда процессора и гигабайты нескончаемым потоком
;)))
80. h00k 36 16.02.14 07:53 Сейчас в теме
(76)
Статья о том, что любой, самый современный, и правильно выстроенный сервер

На "правильно выстроенном" сервере такая ситуация не может возникнуть.
Здесь же статья про то, что если поставить MS SQL сервер с настройками по дефолту, не думая - то могут быть проблемы, да ещё и содержащая неверные утверждения которые до сих пор не исправленны.
Если уж писать про опасность установки параметров по дефолту, то, на мой взгляд, параметры сортировки по умолчанию гораздо более опасный момент.
73. echo77 1093 06.02.14 18:23 Сейчас в теме
Вводное слово "итак" пишется слитно
84. cool.vlad4 45 16.02.14 11:08 Сейчас в теме
добавлю аналогию.если я непонятно выразился. - это тоже самое, - говорить, что сейф ненадежный, поскольку его можно легко открыть и утащить содержимое. но изначально вам известен был шифр от сейфа.
92. alex_sh2008 4 16.02.14 12:11 Сейчас в теме
Правильно настроенные SQL сервер, не зайдет в такую ситуацию как у Вас описана, он просто выругается про недостаток своих ресурсов и откатить все транзакции по этому запросу. Во вторых парсес SQL может вообще не дать выполнить такой запрос
93. yuraos 955 16.02.14 12:36 Сейчас в теме
(92) alex_sh2008,
1. На счет правильно настроенного сервера - согласен!
Но на практике мне попался "не сильно правильно" настроенный сервер.

2. Пример запроса в статье проверялся - "работает" !!!
;))))
95. alex_sh2008 4 16.02.14 12:41 Сейчас в теме
(93) Даже если напрямую выполнить без 1C сервера?
96. Rothschild 16.02.14 12:54 Сейчас в теме
(95) alex_sh2008, да разницы вобщем-то нет.
к стати запрос в примере достаточно просто переделать "в прямой запрос"
Оставьте свое сообщение

См. также

Мониторинг высоконагруженной системы 37

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad) Администрирование данных 1С

Высоконагруженной системе (более 8000 клиентских сессий) мониторинг необходим. Про опыт использования инструментов для мониторинга – самописной системы информирования, написанной на C#, и конфигурации «Центр контроля качества» в связке с системой отображения данных Grafana, на конференции Infostart Event 2018 Education рассказал Олег Репников.

13.09.2019    3338    Repich    4       

Использование Zabbix для сбора информации о серверных вызовах и управляемых блокировках с сервера 1С Предприятия, работающего на платформе GNU/Linux 72

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Администрирование данных 1С Zabbix

Описанные в данном опусе механизмы ни в коей мере не противопоставляются тому, что реализует КИП от 1С или какие-либо другие инструменты (решения)! Это всего лишь еще один взгляд на "проблему", который может быть полезен в некоторых ситуациях.

10.09.2019    6806    Sloth    11       

Анализ производительности APDEX 65

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Отчет для просмотра и анализа замеров производительности в конфигурациях на базе БСП.

31.08.2019    2571    93    YPermitin    7       

Неочевидные проблемы производительности: важность системного подхода при анализе 50

Статья Программист Нет файла v8 Россия MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Часто программисты и 1С-ники сталкиваются с совершенно необъяснимыми на первый взгляд проблемами. Но это потому, что их внимание направлено только на один сегмент системы, а не на всю систему полностью. О том, почему нужно стараться смотреть на ситуацию комплексно, рассказал специалист по производительности компании SOFTPOINT Александр Денисов.

19.07.2019    4088    Филин    12       

Ловля блокировок на связке "Microsoft SQL server - 1С" 38

Статья Системный администратор Программист Нет файла v8 v8::blocking MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Материал относится к базам данных на связке «1С - MS SQL Server». Один из способов отлова блокировок в бд 1С . Переход к управляемым блокировкам через режим "Автоматический и управляемый".

16.07.2019    3446    fhqhelp    0       

Анти-оптимизация: как мы ускорили запрос в 4 раза, сделав его неоптимальным 57

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Решение задач на 1С:Специалист Разработка

В этой статье приведен пример неочевидной "оптимизации" запроса, которая противоречит всем правилам, описанным в книгах для подготовки к сертификации "1С:Эксперт по технологическим вопросам", а также преподаваемым на курсах подготовки экспертов.

02.07.2019    5906    igordynets    119       

Ускорение чтения правил обмена в УПП 1.3 в 20 раз! 66

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Способ оптимизации чтения правил обмена конвертации данных. Может понадобиться при большом размере правил и высокой периодичности обмена.

27.06.2019    4066    YPermitin    16       

Хотите снизить нагрузку на процессор сервера в 2 раза? 21

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

В статье рассмотрено влияние частого запуска регламентных заданий на процессор сервера 1С.

27.06.2019    4036    Дмитрий74Чел    6       

Непридуманные истории по оптимизации. История 1 77

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Первая статья из планируемого цикла об оптимизации приложений на базе 1С. Без теории. Одна практика.

13.06.2019    6915    Repich    117       

Оптимизация: неэффективные запросы 6

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad) Практика программирования Разработка

В большинстве случаев основной причиной медленной работы системы при многопользовательском режиме работы является блокировка данных СУБД (говорим про клиент-серверную версию). Блокировка - это не есть хорошо или плохо, это жизненно необходимая вещь при построении прикладной логики работы системы. Но блокировки таблиц, записей могут быть как вполне законными, так и далеко не всегда оправданными в каждой конкретной ситуации. Одной из самых распространенных причин неоптимальной блокировки ресурсов является некорректное написание запросов.

13.06.2019    2577    slayer-ekb    10       

За 5 шагов добавляем мониторинг счетчиков производительности серверов MS SQL и 1С 90

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Статистика базы данных Производительность и оптимизация (HighLoad)

Мы расскажем и покажем, как добавить данные счетчиков производительности серверов 1С и MS SQL в нашу базу мониторинга за 15 минут. Приведем список наиболее важных из них, опишем основные особенности.

28.05.2019    6993    ivanov660    5       

Не думать о секундах свысока... 55

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Несколько примеров оптимизации типовой конфигурации УТ11. Описанные приемы подходят для многих других конфигураций.

21.05.2019    4303    vasilev2015    21       

Альтернативная стратегия управления блокировками 45

Статья Программист Архив с данными v8 v8::blocking 1cv8.cf Россия MS SQL Бесплатно (free) Производительность и оптимизация (HighLoad)

Данная публикация освещает одну из альтернативных стратегий блокирования данных на уровне MS SQL Server, которая недоступна средствами 1С, но может быть весьма полезной. Разбирается практический пример.

20.05.2019    3693    zhichkin    15       

Как работают управляемые блокировки 120

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Все типовые конфигурации содержат ошибки, потому как управляемые блокировки в 1С слишком уж "управляемые", при понижении уровня изоляции про некоторые "нюансы" просто забыли. Для создания и эксплуатации качественной системы, которая способна поддерживать транзакционную целостность данных при параллельной работе, информацию в этой статье желательно знать, хотя, конечно, ничего особо нового я не открыл.

29.04.2019    12976    comol    198       

Странное потребление места на диске С 33

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Решение проблемы постоянного роста папки %AppData%/Local/Temp.

26.04.2019    10542    kuzyara    12       

Включение встроенного в платформу механизма "Копии базы данных" и использование "Дата Акселератора". Новый стандартный механизм использования баз OLAP в 1С 49

Статья Системный администратор Программист Нет файла v8 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

С версии 1С 8.3.14 в платформе появился новый функционал «Копии базы данных». В данной публикации я хочу рассказать, как включить использование данного механизма в платформе 1с и как его использовать для получения отчетов с копии базы данных, которая может быть вынесена на внешний сервер относительно текущей базы данных, а также как использовать систему «Дата акселератор», в которой база данных целиком размещена в оперативной памяти рабочего сервера кластера серверов «1С:Предприятия».

25.04.2019    8091    Elf1k    26       

5 простых шагов и 15 минут на разворачивание инструмента мониторинга проблем производительности базы 1С 201

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

В этой статье мы разберем механизм использования конфигурации "Анализ технологического журнала" на практике, и всего через 15 минут работы вы получите функциональный, удобный инструмент мониторинга проблем производительности базы 1С.

18.04.2019    17690    ivanov660    40       

Как разбить базу на файлы и не сойти с ума 108

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Разбиение базы данных 1C на файлы и последующее сопровождение. Нюансы, грабли и прочее.

06.04.2019    8544    YPermitin    29       

Как одно изменение конфигурации PostgreSQL улучшило производительность медленных запросов в 50 раз 124

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

В связи с санкциями и другими событиями сейчас все более и более актуальна тема перевода ПО компаний на отечественное и свободное программное обеспечение. Одной из самых востребанных СУБД на рынке на данный момент является PostgreSQL - надежная, высокопроизводительная и хорошо масштабируемая СУБД, которая является прямым конкуретном таким крупным компаниям с их топовыми продуктами, как Oracle, IBM и Microsoft. Однако каждый, кто переходит на PostgreSQL, сталкивается с трудностями, прежде всего с настройкой и производительностью. Не обошли проблемы с производительностью "слоника" и меня. Предлагаю вашему вниманию перевод статьи "How a single PostgreSQL config change improved slow query performance by 50x" автора Pavan Patibandla, которая мне помогла улучшить производительность PostgreSQL.

18.03.2019    9705    w.r.    23       

Простое программное решение проблем с блокировками SQL 17

Статья Системный администратор Программист Нет файла v8 v8::blocking 1cv8.cf Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Описание одного из способов программного решения проблемы блокировок при проведении документов в клиент-серверной 1С.

06.03.2019    5788    dmitrydemenew    38       

Производительность сервера 1С и фоновые задания 63

Статья Системный администратор Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

В падении производительности сервера 1С зачастую виноваты не регламентные / фоновые задания, они выполняют полезную работу. Но задания нельзя оставлять «наедине» с базой.

05.02.2019    10634    user715208    38       

Новый режим реструктуризации (обновление базы данных на сервере в режиме v2) 168

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Данная статья скорее является заметкой и отчетом об успешном использовании нового механизма реструктуризации баз данных 1С. Актуально для больших баз данных.

31.10.2018    18181    Dach    46       

Нетривиальные подходы в решении всем известных проблем: ускорение «больших» документов в 1С и ускорение поиска по подстроке. Как добиться эффекта в разы? 62

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Часто у пользователей 1С поиск информации по большим спискам данных по подстроке занимает продолжительное время. Павел Баркетов рассматривает причины торможения запросов с поиском по подстроке и описывает возможности и подходы к их оптимизации и ускорению. Также в статье разобраны причины длительного проведения «больших» документов (более 10 000 строк) и даны рекомендации по ускорению этих операций.

30.08.2018    10715    gallam99    31       

Кейс: как мы разрабатывали систему автоматизации анализа ошибок, связанных со скоростью работы 1С 42

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Бурмистров Андрей рассказывает о создании инструмента по автоматизации анализа неоптимальных запросов в коде 1С. Он поднимает вопрос о предпосылках создания этого инструмента, рассказывает о возникших форс-мажорных ситуациях, с которыми столкнулась команда в процессе разработки, и о том, как они с ними справлялись.

27.08.2018    7419    Andreynikus    20       

3000 пользователей на трехъядерном Athlon – сверхтонкий веб-клиент для 1С 97

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Юрий Лазаренко поделится опытом ускорения 1С нестандартными методами, в том числе с помощью http-сервисов. Он расскажет, как с помощью сверхтонкого клиента для 1С и интеграции с сайтом удалось добиться ускорения 1С на порядок. Также в статье приведена статистика по отчету о нагрузочном тестировании сверхтонкого клиента для 1С:ITIL.

16.08.2018    11217    TitanLuchs    28       

Когда условие в срезе последних даже вредит 20

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Спойлер: оптимизатор MSSQL видит внешние, по отношению к срезу, условия, и строит план с их учетом.

05.08.2018    7662    nicxxx    105       

Оптимизация без оптимизации: как мы ускорили 1С в 10 раз без трудоемкой оптимизации запросов и алгоритмов. Практический опыт 80

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Можно ли ускорить 1С, не оптимизируя запросы, не разбивая транзакции и не наращивая оборудование? В статье Аверьянова Алексея рассмотрены три практических кейса повышения производительности системы без трудоемкой оптимизации: отложенное резервирование «в один поток», отложенное создание и проведение реализаций.

26.07.2018    13038    avryanovalexey    100       

Альтернативные технологии нагрузочного тестирования серверной части кода прикладных решений на платформе 1С 56

Статья Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Евгений Филиппов знакомит с альтернативными технологиями нагрузочного тестирования серверной части кода прикладных решений на платформе 1С. Он рассказывает об узких местах традиционной технологии нагрузочного тестирования и методах их обхода путем переноса работы с клиентских соединений на фоновые задания и изменения способа управления сеансами. Также автор приводит примеры с реальных проектов, подтверждающие жизнеспособность предложенных технологий.

12.07.2018    8118    jf2000    10       

Архитектура ИТ-системы на базе 1С в крупной организации. Часть 2. Чудес не бывает 81

Статья Системный администратор Нет файла v8 УТ11 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Развернуто отвечаю, как мы боремся с зависаниями системы и вообще решаем проблемы. С примерами, но без слайдов.

04.07.2018    12101    Repich    74       

Архитектура ИТ-системы на базе 1С в крупной организации 101

Статья Системный администратор Нет файла v8 УТ11 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

В данной статье я хотел бы очень крупными мазками обрисовать архитектуру ИТ системы на базе 1С в крупных (более 1 тысячи пользователей) организациях. Она не несет какой либо образовательной цели, это просто попытка показать – «а как у нас».

02.07.2018    14611    Repich    112       

Взгляд на ошибки и платформу через призму HI-Load 52

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Поговорим об ошибках в целом и их влиянии на Hi-Load системы в частности. Может ли тут помочь платформа 1С? (да и должна ли в принципе?) Немного про сам Hi-Load на примере крупной БД. PS Данная статья написана по итогам доклада, прочитанного на конференции INFOSTART EVENT 2017 COMMUNITY.

18.06.2018    9890    Sergey.Noskov    27       

Простые регулярные выражения 59

Статья Программист Архив с данными v8 Россия Бесплатно (free) Производительность и оптимизация (HighLoad)

Шпаргалка к экзамену "Эксперт по технологическим вопросам".

30.04.2018    11593    3    vasilev2015    30       

Неоптимальная работа запроса 128

Статья Программист Нет файла v8::Запросы Бесплатно (free) Производительность и оптимизация (HighLoad)

Шпаргалка к экзамену "Эксперт по технологическим вопросам".

27.04.2018    16901    vasilev2015    32       

Неоптимальности вида «план исполнения запроса "испортился"» - поиск и исправление 69

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

Рассматривается один из частых типов проблем в рабочих базах (второй после блокировок, пожалуй... впрочем, часто и тесно с ними связанный). Материал относится к базам данных на связке «1С - MS SQL Server».

05.02.2018    13659    fhqhelp    20       

Пример поиска неоптимальности при загрузке SQL-сервера по CPU на 100% 83

Статья Системный администратор Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Производительность и оптимизация (HighLoad)

Вечер пятницы, ничто не предвещало.. Звонок из техподдержки: "центральная база розничной сети лежит". Далее расследование причин.

23.12.2017    15183    fhqhelp    32       

Исследование технологического журнала 1С при помощи регулярных выражений в блокноте 128

Статья Системный администратор Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Все из тех, кто пробовали сдать на сертификат "Эксперт по технологическим вопросам 1С", сталкивались с методикой ЦКТП - разбор файлов технологического журнала при помощи консоли bash. Я, в свою очередь,внёс изменения в данную методику. Мне хотелось достичь более понятного вида и сфокусироваться на Perl, в качестве предпочтительного средства обработки файлов ТЖ. Вот что из этого вышло:

30.10.2017    24130    MrWonder    38       

Вопросы разработки, анализа производительности и оптимизации приложений 1С под управлением СУБД ORACLE 16

Статья Системный администратор Программист Нет файла v8 Oracle Бесплатно (free) Производительность и оптимизация (HighLoad)

Я являюсь сотрудником Комсомольского-на-Амуре филиала компании «Сухой». Наше предприятие производит боевую авиационную технику и комплектующие для гражданской авиационной техники. В статье я вам расскажу про свой опыт работы со связкой 1С и СУБД ORACLE.

05.09.2017    10395    user597755_vices2015    2       

Оптимизируй это! Или MS SQL и Экспертный подход творят чудеса! 207

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

В статье речь пойдет про взаимодействие сервера 1С с MS SQL. Мы очень часто слышим, как важно оптимизировать все критические участки системы заблаговременно, в плановом режиме, как надо, «от и до» во всех деталях. Но в реальной жизни бывает по-другому. Очень часто клиенты обращаются к нам, когда система уже не дает работать: «спасите, помогите, болит очень сильно, надо решать». Об одном из таких случаев я и хотел бы вам сегодня рассказать.

11.07.2017    28866    R.Tsarenko    32       

Планы запросов - это просто! 290

Статья Программист Нет файла v8::Запросы Бесплатно (free) Производительность и оптимизация (HighLoad)

Наверное, каждый 1С-ник задавался вопросом "что быстрее, соединение или условие в ГДЕ?" или, например, "сделать вложенный запрос или поставить оператор В()"? В данной статье я не дам вам исчерпывающих инструкций по чтению планов запроса. Но я постараюсь объяснить доходчиво - что это такое и с какой стороны к ним подойти.

04.07.2017    30991    Evil Beaver    58       

PostgreSQL на Windows – реальная альтернатива для высоконагруженных систем на базе 1С 157

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Производительность и оптимизация (HighLoad)

Многие интересуются PostgreSQL, но не знают, насколько хорошо будет она работать с уже существующими системами. «Инфософт» - одна из первых компаний, кто опробовал PostgreSQL на Windows. О своем опыте перехода рассказывает руководитель отдела информационных технологий компании.      

23.06.2017    37045    a.doroshkevich    113       

Ускорение в 100 раз. Решаем проблему блокировок 328

Статья Программист Нет файла v8 v8::УФ 1cv8.cf Бесплатно (free) Производительность и оптимизация (HighLoad)

Я являюсь автором и тренером курсов по оптимизации и повышению производительности в 1С. Большинство людей приходят ко мне на обучение, желая разобраться со своими проблемами, и я очень часто слышу от них: «эти блокировки замучили, достали, жизни нет, что делать – не знаем. Технологический журнал включали, галочки ставили, форумы читали – ничего не помогает». Я уверен, что эта тема актуальна для многих из вас, поэтому в статье, не вдаваясь глубоко в подробности, я хочу вам дать некоторые конкретные рекомендации, которые вы сможете применить у себя и сразу получить ощутимый эффект. Например, если у вас запрос из-за блокировок выполняется 15 секунд, то после оптимизации он начнет выполняться за 15 миллисекунд. Это обычная практика, никакой фантастики – все это можно сделать.

13.06.2017    59954    Andreynikus    34