Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   MS SQL потребляет много оперативной памяти (http://forum.oszone.net/showthread.php?t=221356)

Tonny_Bennet 24-11-2011 11:44 1802254

MS SQL потребляет много оперативной памяти
 
Здравствуйте.

Имеется сервер 1С и подключенный к нему через сеть в 1 Гбит/с сервер MS SQL

Версия MS SQL 2008 R2

Microsoft SQL Server Management Studio 10.50.1600.1
Клиентские средства служб Microsoft Analysis Services 10.50.1600.1
Компоненты доступа к данным (MDAC) 6.0.6002.18005
Microsoft MSXML 3.0 6.0
Microsoft Internet Explorer 7.0.6002.18005
Microsoft .NET Framework 2.0.50727.4016
Операционная система 6.0.6002


Операционная система Win2008 Ent 64-bit

Подробная конфигурация сервера

Корпус Supermicro CSE-733TQ-665B Low Noise Mid tower CSE-733TQ-665B
Серверная материнская плата Supermicro X8DTi-O X8DTi-O
Процессор Intel Xeon E5620 AT80614005073A 2.40GHz,12M,5.86GT/s, LGA1366 (80W), DDR3-1066 4Cores/8Threads (Westmere) Tray AT80614005073AB
Охлаждение Intel Thermal Solution (Combo) BXSTS100C for LGA-1366, 55** & 56** Xeon CPU series Max 130W BXSTS100C
Серверная оперативная память DDR3 4096Mb PC1333 Kingston ECC Reg Dual Rank KVR1333D3D8R9S/4G
Накопитель SSD 128Gb Kingston SSDNow + V100 2.5" SATAII SV100S2/128GZ 2 шт.
Переходник 3.5" to 2.5" HDD Tray MCP-220-00043-0N
Жесткий диск HDD 2000 Gb Seagate (5900rpm) 64Mb SATAIII ST2000DL003


Из 2-х SSD дисков сделан RAID1. Система и базы хранятся на нём. У сервера единственная задача - MS SQL!

Всего 11 баз данных общим объёмом на 57 ГБ. В одной из баз (имеется в виду 1С) весом в 16 ГБ одновременно трудится около 20 человек. Иногда возникают вопросы связанные со скоростью работы типа: "Документ долго проводится", "Отчёт долго формируется".
Во время этих жалоб следил за загруженностью ресурсов сервера. Единственное что смущает так это то, что оперативка, выделенная серверу (12 ГБ), полностью забита!!! Перезапустил службу MS SQL. На графике ниже видно резкое падение - это и есть момент рестарта службы. Жалобы прекратились. А потом примерно в 00-20 снова растёт загрузка - на это время сделан JOB на резервное копирование всех баз.



Мне интересно почему не очищается оперативка? Где могут быть слабые места в данной системе? Можно ли и стоит ли при помощи JOB создать задание, которое после создания бекапа перезапускает сервер (JOB создавал приходящий программист 1С)? Почему во время активной работы пользователей загрузка сети не превышает 4 Мбит/с (по-моему должно быть больше)?

Delirium 25-11-2011 01:11 1802793

Цитата:

Цитата Tonny_Bennet
Из 2-х SSD дисков сделан RAID1. Система и базы хранятся на нём »

Ой как не красиво то. Во первых, зеркало - далеко не самый удачный вариант рейд-массива для SQL, тем более что файлы логов и транзакций хранятся на этом же массиве. Во вторых, было бы неплохо узнать, что же там за JOB такой, что тормозит работу пользователей. В третих, не указано, КУДА делаются бекапы.
Ждем ответов и будем думать дальше :)

Цитата:

Цитата Tonny_Bennet
Почему во время активной работы пользователей загрузка сети не превышает 4 Мбит/с (по-моему должно быть больше) »

Почему должно быть больше? У меня 110 человек сидят в SQL базах, загрузка сети почти 0. Все зависит не от сети, а от того, как работает клиентская и серверная части базы данных.

Tonny_Bennet 25-11-2011 12:33 1803037

Цитата:

Цитата Delirium
зеркало - далеко не самый удачный вариант рейд-массива для SQL »

Какой массив лучше сделать тогда?

Цитата:

Цитата Delirium
тем более что файлы логов и транзакций хранятся на этом же массиве »

Как стоит разделить эти файлы? (Я так понимаю что речь идёт о файлах *.mdf и *.log)

Цитата:

Цитата Delirium
было бы неплохо узнать, что же там за JOB такой »

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



Verify that automation is enabled.
Код:

IF (msdb.dbo.fn_syspolicy_is_automation_enabled() != 1)
        BEGIN
            RAISERROR(34022, 16, 1)
        END

Purge history.
Код:

EXEC msdb.dbo.sp_syspolicy_purge_history
Erase Phantom System Health Records.
Код:

if ('$(ESCAPE_SQUOTE(INST))' -eq 'MSSQLSERVER') {$a = '\DEFAULT'} ELSE {$a = ''};
(Get-Item SQLSERVER:\SQLPolicy\$(ESCAPE_NONE(SRVR))$a).EraseSystemHealthPhantomRecords()


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

Пакет лежит в Maintenance Plans\MaintenancePlan ... как его оттуда достать я не знаю :(

Ошибка


Код:

Дата                20.11.2011 14:47:54
Журнал                Журнал заданий (MaintenancePlan.ВложенныйПлан_1)

Идентификатор шага                1
Сервер                MARS
Имя задания                MaintenancePlan.ВложенныйПлан_1
Имя шага                ВложенныйПлан_1
Продолжительность                00:08:32
Серьезность Sql                0
Идентификатор Sql-сообщения                0
Оператору отправлено сообщение электронной почты               
Оператору отправлено сообщение командой Net send               
Оператору отправлено сообщение на пейджер               
Предпринято повторов                0

Сообщение
Выполняется от имени пользователя: MARS\SYSTEM.Программа выполнения пакетов Microsoft (R) SQL Server  Version 10.50.1600.1 for 64-bit  (C) Корпорация Майкрософт (Microsoft Corporation), 2010. Все права защищены.    Начало: 14:47:54  Выполнение: 2011-11-20 14:47:54.67    Источник: {27CAE927-5CA1-4A19-8EBB-1CEDBC8062E4}    Выполнение запроса "DECLARE @Guid UNIQUEIDENTIFIER      EXECUTE msdb..sp...".: 100% завершено  Конец выполнения  DTExec: завершено исполнение пакетаDTSER_FAILURE (1).  Начало: 14:47:54  Готово: 14:56:26  Прошло:512.245 секунд.  Не удалось выполнить пакет.  Шаг завершился с ошибкой.



Ещё одна ошибка

Код:

Дата                31.10.2011 0:00:00
Журнал                Журнал заданий (MaintenancePlan.ВложенныйПлан_1)

Идентификатор шага                1
Сервер                MARS
Имя задания                MaintenancePlan.ВложенныйПлан_1
Имя шага                ВложенныйПлан_1
Продолжительность                00:55:25
Серьезность Sql                0
Идентификатор Sql-сообщения                0
Оператору отправлено сообщение электронной почты               
Оператору отправлено сообщение командой Net send               
Оператору отправлено сообщение на пейджер               
Предпринято повторов                0

Сообщение
Выполняется от имени пользователя: MARS\SYSTEM....for 64-bit  (C) Корпорация Майкрософт (Microsoft Corporation), 2010. Все права защищены.    Начало: 0:00:00  Выполнение: 2011-10-31 00:00:01.37    Источник: {27CAE927-5CA1-4A19-8EBB-1CEDBC8062E4}    Выполнение запроса "DECLARE @Guid UNIQUEIDENTIFIER      EXECUTE msdb..sp...".: 100% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:36.92    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.16    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ByCode_SR] ON [dbo].[_Acc14] R...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.16    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.18    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ByDescr_SR] ON [dbo].[_Acc14] ...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.18    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.20    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ByField460_SR] ON [dbo].[_Acc1...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.20    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.21    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ByOrder_SR] ON [dbo].[_Acc14] ...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.21    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.23    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ByParentCode_RSR] ON [dbo].[_A...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.23    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.24    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ByParentDescr_RSR] ON [dbo].[_...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.24    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.26    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ByParentField459_RSR] ON [dbo]...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.26    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.27    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ByParentOrder_RSR] ON [dbo].[_...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.27    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.30    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [PK___Acc14__AC8ED0C40D30B51A] ON [dbo...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.30    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.31    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ExtDim455_ByLineNo_RNR] ON [db...".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.31    Источник: Восстановить индекс    Выполнение запроса "USE [BUH2011]  ".: 0% завершено  Конец выполнения  Выполнение: 2011-10-31 00:08:37.33    Источник: Восстановить индекс    Выполнение запроса "ALTER INDEX [_Acc14_ExtDim455_IntKeyInd] ON [dbo]....".: 0% завершено  Конец выполнения  Выполнение: 20...  Не удалось выполнить п...  Шаг завершился с ошибкой.



Цитата:

Цитата Delirium
КУДА делаются бекапы. »

Бекапы делаются на большой жёсткий диск
Цитата:

Цитата Tonny_Bennet
Жесткий диск HDD 2000 Gb Seagate (5900rpm) 64Mb SATAIII ST2000DL003 »

но думаю что проблема не в скрипте создания бекапов а в скрипте переиндексации базы.


Цитата:

Цитата Delirium
Почему должно быть больше? »

Не знаю... просто думал что могло быть и больше :)

Delirium 25-11-2011 15:04 1803156

Цитата:

Цитата Tonny_Bennet
Какой массив лучше сделать тогда? »

5. Или 10. И логи (ldf-файлы) должны быть на других жестких дисках. Не разделах, а именно дисках. Это заметно снизит дисковую нагрузку, особенно если у баз данных модель восстановления выставлена в Full, а не Simple.

Всего 11 баз. Из них только одна 1С? И именно на 1С, я так понимаю, делается космическая переиндексация какая то?
Что меня всегда убивало в 1С, так это то, как они умудряются своим софтом вешать такие вещи как SQL Server. Но это так, в качестве оффтопа.

Пойдем другим путем. Как часто выполняется переиндексация? Одновременно с основным JOB-ом ежедневно в 00-20? Или чаще?

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

Я бы сделал следующее:
1. Через Profiler с утра пораньше, когда нет пользователей в базе, помониторил бы, какие обращения идут к SQL серверу и какие задачи выполняются.
2. Через Management Studio помониторил бы активные соединения, есть ли незакрытые транзакции и что они выполняют.
3. В момент жалоб еще внимательней повторил бы пункт.2

Согласно этому анализу будет примерно видно, в чем проблема.
Ну и собственно, Performance Monitor от OS Windows еще никто не отменял. И на OsZone, если я не ошибаюсь, есть отличные статьи по оптимизации SQL Server. Настоятельно рекомендую к прочтению :).(http://www.oszone.net/4482/Microsoft_SQL_Server)

ПО поводу вытаскивания задания из плана. Под руками дома sql нет, попробую в понедельник посмотреть на работе, ну или может, пораньше кто нибудь подскажет здесь :)

Tonny_Bennet 26-11-2011 12:54 1803708

Цитата:

Цитата Delirium
Всего 11 баз. Из них только одна 1С? »

Они все 1С... просто компания представляет собой набор юридическийх лиц. Самая большая из них 16 ГБ это торговля в которой и работает много народу. Остальное бухгалтерские базы в которых работают только бухи - 4 человека.

Цитата:

Цитата Delirium
И именно на 1С, я так понимаю, делается космическая переиндексация какая то? »

Космическая переиндексация по-моему затрагивает все базы.

Цитата:

Цитата Delirium
Как часто выполняется переиндексация? »

Все задания запускаются ночью 1 раз. Всего их 2. Что из них переиндексация я не знаю.

Задание MaintenancePlan.Вложенный_план_1, которое я не могу достать, выполняется в 00:00.
Задание syspolicy_purge_history которое я попытался описать выше выполняется в 02:00.

Теперь понимаю что скорее всего проблема в MaintenancePlan.Вложенный_план_1 .... нужно его как то вытащить.
Цитата:

Цитата Delirium
Настоятельно рекомендую к прочтению .(http://www.oszone.net/4482/Microsoft_SQL_Server) »

Уже начал читать :)

Tonny_Bennet 26-11-2011 13:57 1803732

Нашёл что делает MaintenancePlan.Вложенный_план_1. Лежит он в Планах обслуживания

Вроде бы ничего криминального. Так что почему на каком-то шаге забивается оперативка и потом не очищается я не знаю :(...

Может скрипт спотыкается на какой-то базе? В предыдущей ошибке была указана база buh2011...

Delirium 28-11-2011 01:17 1804656

Цитата:

Цитата Tonny_Bennet
Задание syspolicy_purge_history которое я попытался описать выше выполняется в 02:00. »

Это задание не трогаем, оно стандартное, и у всех запускается в 2 ночи. Выполняется за секунду.

Проблема однозначно во втором плане. Точнее, не в самом плане, а в данных в БД.
Что можно сделать: - ПКМ на плане - Wizard - запустить мастер плана. Пройтись по шагам, посмотреть, что он выполняет. Думаю, не ошибусь в предположении, что там выставлена опция Rebuild Indexes - и далее будет список баз, где это надо провести. Убираешь базу Buh2011, сохраняешь план, смотришь на результаты после запуска плана. Если проблема исчезнет, значит БД мы локализовали и будем смотреть дальше. Если же нет, то убирай еще БД из плана, вычленяя источник проблемы.

Tonny_Bennet 28-11-2011 13:47 1804865

Цитата:

Цитата Delirium
что там выставлена опция Rebuild Indexes »

Выше в скриншоте MaintenancePlan.Вложенный_план_1 видно, что есть шаг "Восстановить индекс".

Слева на панели есть "Реорганизация индекса" и "Перестроение". Я думаю в данном переводе Престроение и есть Rebuild Indexes. Если да, то как видно в этом плане данный шаг не используется.

Стоит ли исключать БД из шага "Восстановить индекс"?

Сегодня обработка отработала нормально (без ошибок) но оперативка снова в полке :(
Сообщение в журнале

Дата 28.11.2011 0:00:00
Журнал Журнал заданий (MaintenancePlan.ВложенныйПлан_1)

Идентификатор шага 1
Сервер MARS
Имя задания MaintenancePlan.ВложенныйПлан_1
Имя шага ВложенныйПлан_1
Продолжительность 01:02:16
Серьезность Sql 0
Идентификатор Sql-сообщения 0
Оператору отправлено сообщение электронной почты
Оператору отправлено сообщение командой Net send
Оператору отправлено сообщение на пейджер
Предпринято повторов 0

Сообщение
Выполняется от имени пользователя: MARS\SYSTEM....0.1 for 64-bit (C) Корпорация Майкрософт (Microsoft Corporation), 2010. Все права защищены. Начало: 0:00:00 Выполнение: 2011-11-28 00:00:00.88 Источник: {27CAE927-5CA1-4A19-8EBB-1CEDBC8062E4} Выполнение запроса "DECLARE @Guid UNIQUEIDENTIFIER EXECUTE msdb..sp...".: 100% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.37 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.40 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ByCode_SR] ON [dbo].[_Acc14] R...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.40 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.42 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ByDescr_SR] ON [dbo].[_Acc14] ...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.42 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.44 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ByField460_SR] ON [dbo].[_Acc1...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.44 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.46 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ByOrder_SR] ON [dbo].[_Acc14] ...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.46 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.48 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ByParentCode_RSR] ON [dbo].[_A...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.48 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.50 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ByParentDescr_RSR] ON [dbo].[_...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.50 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.52 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ByParentField459_RSR] ON [dbo]...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.52 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.54 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ByParentOrder_RSR] ON [dbo].[_...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.54 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.57 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [PK___Acc14__AC8ED0C40D30B51A] ON [dbo...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.57 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.60 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ExtDim455_ByLineNo_RNR] ON [db...".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.60 Источник: Восстановить индекс Выполнение запроса "USE [BUH2011] ".: 0% завершено Конец выполнения Выполнение: 2011-11-28 00:08:40.61 Источник: Восстановить индекс Выполнение запроса "ALTER INDEX [_Acc14_ExtDim455_IntKeyInd] ON [dbo]....".: 0% завершено Конец выполнения Выполнение: 2011-1... Пакет выполнен усп... Шаг успешно выполнен.


P.S. В сообщениях о успешном завершении резервного копирования нет ни слова о каких то других базах кроме BUH2011. Может и не стоит обращать внимание на неё? Просто эта база стоит первая в списке на копирование.

Delirium 29-11-2011 01:05 1805376

Тебе нужно отловить, связано ли увеличение расхода оперативки с обработкой какой то конкретной базы, или же это происходит независимо от базы. Убирая по одной базы из плана, можно выловить источник проблемы. А дальше будем думать :)

Tonny_Bennet 30-11-2011 12:32 1806341

Цитата:

Цитата Delirium
Убирая по одной базы из плана, можно выловить источник проблемы »

Получится сделать только на выходных. Как сделаю - отпишусь.

Busla 30-11-2011 13:38 1806406

Delirium, в очередной раз поражаюсь твоей категоричности в рекомендациях. При этом они зачастую идут в разрез с общепринятой практикой/рекомендациями разработчика ПО.
RAID-5 не рекомендуется под БД
если создать RAID-массив, то на отдельных дисках уже ничего не сделаешь. Видимо имелись ввиду отдельные массивы. Правда, опять же, в современных реалиях чаще рекомендуется делить один массив на LUN'ы, чем создавать отдельные массивы - но это в контексте "взрослых" контроллеров.

1с официально рекомендует регулярно переиндексировать БД и обновлять статистику (насколько это имеет смысл, зависит от конкретной ситуации)

Не вижу никакой проблемы в том, что SQL Server занимает доступную свободную память - её же для этого и покупали в сервер ;-)

Delirium 30-11-2011 15:02 1806486

Цитата:

Цитата Busla
в очередной раз поражаюсь твоей категоричности в рекомендациях »

Так поправь меня, когда я ошибаюсь. А то я один пытаюсь помочь, а остальные только порицают. Я критику воспринимаю адекватно, если мне покажут, что я не прав.

Цитата:

Цитата Busla
RAID-5 не рекомендуется под БД »

Это все же лучше, чем простое зеркало. Хотя бы в плане надежности.
Цитата:

Цитата Busla
Видимо имелись ввиду отдельные массивы »

Совершенно верно.
Цитата:

Цитата Busla
1с официально рекомендует регулярно переиндексировать БД и обновлять статистику »

А я с этим и не спорил.
Цитата:

Цитата Busla
Не вижу никакой проблемы в том, что SQL Server занимает доступную свободную память - её же для этого и покупали в сервер ;-) »

Речь не о том, что он занимает, а о том, что выполняемые задачи после своего завершения эту самую память не освобождают, а это абсолютно разные вещи. Или я полный идиот.

Busla 02-12-2011 09:16 1807794

Цитата:

Цитата Delirium
выполняемые задачи после своего завершения эту самую память не освобождают, а это абсолютно разные вещи.»

Этот вопрос есть буквально на каждом форуме посвящённом SQL Server'у - это известное, нормальное его поведение - память SQL Server отдаёт по необходимости. Если, допустим, через проводник начать копировать гигабайтные файлы, SQL Server начнёт освобождать память.

Delirium 02-12-2011 11:23 1807866

Busla, в таком случае как объяснить заторможенность действий при заполненной памяти и почему заполнение памяти происходит после выполнения переиндексации? Мы же не оспариваем работу SQL Server'а, а пытаемся найти решение, которое позволит устранить недостаток.

P.S. И опять же, я в упор не вижу конструктивных предложений "по теме" :)

Tonny_Bennet 03-12-2011 20:47 1808668

Спасибо за увлекательную переписку выше :)

Я сделал отдельное задание в котором оставил 3 шага как в исходном задании : восстановить индекс, обновить статистику, резервное копирование. И стал запускать это задание, изменяя базы данных. Наблюдал за общим объёмом используемой оперативной памяти до запуска и после завершения выполнения задания (ниже объём в ГБ). Вот что получилось:

BUH2011 4.38 - 5.16
Leonidov 5.16 - 5.73
Novikova2 5.73 - 7.07
Stushniy 7.07 - 7.72
ZUP 7.72 - 7.86
trade 2.02 - 13.9

Потом я решил сделать задание только с восстановлением индекса для базы trade . Объём используемой памяти вырос с 1.94 ГБ до 13.5 ГБ. С обновлением статистики для этой базы примерно то же... оперативка полностью забивается.

Похоже что что-то с базой trade. База достаточно большая. Может для диагностики нужны какие-то параметры этой базы?

Цитата:

Цитата Busla
Если, допустим, через проводник начать копировать гигабайтные файлы, SQL Server начнёт освобождать память. »

Пока делал все эти манипуляции с базой - накопились файлы. Решил проверить ваше утверждение и скопировать их. Использование оперативной памяти с 13.2 ГБ поднялось до 13.7 ГБ, а после окончания копирования снова оказалось на уровне 13.2 ГБ.

Delirium 04-12-2011 11:01 1808937

Цитата:

Цитата Tonny_Bennet
Похоже что что-то с базой trade. База достаточно большая. Может для диагностики нужны какие-то параметры этой базы? »

Размер базы, размер логов, какая опция журнала выставлена - Full, Simple.. ? Выполнялась ли операция SHRINK database ?

Tonny_Bennet 05-12-2011 09:22 1809475

Цитата:

Цитата Delirium
Размер базы »

19571,88 МБ - указано в SQL Managment Studio
файл trade.mdf 15,7 ГБ (16*958*619*648 байт)
Цитата:

Цитата Delirium
размер логов »

файл trade_log 3,31 ГБ (3*563*978*752 байт)
Цитата:

Цитата Delirium
какая опция журнала выставлена - Full, Simple.. ? »

Если честно то не нашёл такого параметра. Если речь идёт о модели восстановления то там выставлена "Простая"
Цитата:

Цитата Delirium
Выполнялась ли операция SHRINK database »

Я выполнял эту операцию ещё когда база была в 2005 MS SQL сервере.... т.е. около пары месяцев назад. Сказал об этом программисту 1С. Он как бы не обрадовался и сказал что ничего полезного в этом как бы и нет... больше не делал.

Можете доступно объяснить для чего нужна эта операция? Она просто уменьшит размер базы без потери производительности ну и наверное ж без потери информации?

Delirium 05-12-2011 09:48 1809484

Цитата:

Цитата Tonny_Bennet
Можете доступно объяснить для чего нужна эта операция? »

По ссылке выше (dbcc shrinkdatabase) описано, для чего она используется. Не знаю, почему 1С-ник не обрадовался, но криминального ничего в этом нет, и плохого тоже. Все данные, само собой, останутся в сохранности(но бекап, само собой, обязателен перед выполнением).
Цитата:

Цитата Tonny_Bennet
Если речь идёт о модели восстановления то там выставлена "Простая" »

Да да, именно это и имелось ввиду, забыл слова "модель восстановления" когда писал :)

Почитай вот эту переписку на sql.ru, подобная ситуация обсуждается.

Tonny_Bennet 06-12-2011 09:15 1810128

сделал сегодня утром shrink базы trade... размер базы 8230,00 МБ

Смотрим за скоростью работы.

Delirium 06-12-2011 11:38 1810213

с 15 до 8 Гб - неслабый результат :)

Tonny_Bennet 06-12-2011 18:28 1810489

Цитата:

Цитата Delirium
с 15 до 8 Гб - неслабый результат »

Да, действительно приятно. Нужно с остальными базами сделать то же самое.

После окончания работы загрузка оперативки на сервере 8.5 ГБ.

Жду отработки ночных скриптов. На скорость работы в базе жалоб не было!

Shiirx 23-10-2013 00:24 2239257

Извиняюсь, за никрофилию, но как в мексиканских сериалах: На самом интересном месте... (((
Чем дело хоть закончилось?

alef2474 23-10-2013 08:13 2239340

Цитата:

Цитата Shiirx
Извиняюсь, за никрофилию, но как в мексиканских сериалах: На самом интересном месте... (((
Чем дело хоть закончилось? »

Имхо, это история двухгодичной давности и теперь не актуальна, т.к. если брать 1С8.2, то в 17 релизе платформы, который уже год как вышел, фирма 1С анонсировала какое-то существенное улучшение работы с SQL базами и действительно, по моему наблюдению, сделала. Теперь описанного в теме нарастания использования памяти сервера не происходит, а до 17 релиза было.


Время: 06:12.

Время: 06:12.
© OSzone.net 2001-