Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: Утечки памяти MS SQL 2008  [new]
желтый триггер
Guest
J3utajisi,

если я правильно понял, у вас "4 параллельных потока" порождаемых "клиентом" делают массовые модификации, и у каждого из них sqlserver'ный паралеллизм неограничен.
попробуйте MAXDOP порегулировать. начиная с цифры 1.
2 сен 11, 11:50    [11217088]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
желтый триггер
Guest
и в этих массовый изменениях нет ли у вас такой фигни, которая сначала всё удаляет, потом заново вставляет.
вы говорили о просадке чтений после массовых изменений, я все думаю про кластерные по гуидам.
2 сен 11, 13:55    [11218200]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
желтый триггер
и в этих массовый изменениях нет ли у вас такой фигни, которая сначала всё удаляет, потом заново вставляет.
вы говорили о просадке чтений после массовых изменений, я все думаю про кластерные по гуидам.

Есть такая фигня, как раз так все и происходит. К тому же когда удаляется или добавляется что-то, срабатывают триггеры(сейчас избавляемся от них), которые меняют другие записи в таблицах.
2 сен 11, 15:51    [11219415]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
желтый триггер
Guest
J3utajisi,

даже если на апдейты переделать тяжко но возможно - лучше переделать.
если в использовании гуида нет никакого смысла (кто и зачем его туда влепил?) - лучше сделать PK по int.
если нельзя от гуида избавиться совсем - посмотрите, не лучше ли будет смотреться кластерный по другому полю (PK по гуиду соответственно будет некластерный), на крайняк в дефолте гуидного поля поставьте newsecuential, а не просто newid.
если удаляется вобще всё (таблица опустошается) - не делайте через delete (delete vs truncate в google, F1).
у вас 2008 - F1 по switch
2 сен 11, 16:10    [11219665]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
BVB_berserk
Member

Откуда:
Сообщений: 35
J3utajisi
желтый триггер
и в этих массовый изменениях нет ли у вас такой фигни, которая сначала всё удаляет, потом заново вставляет.
вы говорили о просадке чтений после массовых изменений, я все думаю про кластерные по гуидам.

Есть такая фигня, как раз так все и происходит.


Может попробовать через MERGE замутить, раз 2008 стоит?
2 сен 11, 16:44    [11219975]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
желтый триггер
J3utajisi,

даже если на апдейты переделать тяжко но возможно - лучше переделать.
если в использовании гуида нет никакого смысла (кто и зачем его туда влепил?) - лучше сделать PK по int.
если нельзя от гуида избавиться совсем - посмотрите, не лучше ли будет смотреться кластерный по другому полю (PK по гуиду соответственно будет некластерный), на крайняк в дефолте гуидного поля поставьте newsecuential, а не просто newid.
если удаляется вобще всё (таблица опустошается) - не делайте через delete (delete vs truncate в google, F1).
у вас 2008 - F1 по switch

По возможности переделываются все операции. Гуиды использовались для беспроблемного мержа двух баз, пока этого не было ни разу. Сразу уйти от гуидов тяжело, т.к. очень много кода, идет постоянная поддержка и рост проекта. Про newsecuential слышал, вроде генерит по порядку гуиды, можно попробовать. В таблицах очищаются не все записи..
2 сен 11, 16:53    [11220030]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
желтый триггер
Guest
J3utajisi,

по какому принципу "не все" удаляются? по какому-то id или дате?

ну раз тяжело - оставляйте гуиды.

ps
про мёрж баз. ну вот вы раз замёржились, туда-сюда гуиды перелились.
потом запустили свой адский механизм, все гуиды что были пропали, новые гуиды при мёрже ни с чем не совпадают...
2 сен 11, 17:05    [11220094]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
желтый триггер
J3utajisi,

по какому принципу "не все" удаляются? по какому-то id или дате?


По id. Скажем так удаляются объекты из таблицы, которые содержат кучу параметров в других таблицах.
2 сен 11, 17:19    [11220161]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
желтый триггер
Guest
J3utajisi
По id. Скажем так удаляются объекты из таблицы, которые содержат кучу параметров в других таблицах.

"по id" понял, дальше не понял.
если id (я правильно понял что в этой таблице id - поле не уникальное, что это ссылка куда-то?) - главный критерий манипулирования данными - посмотрите в сторону секционирования по диапазонам этого id.
это предложение на посмотреть, дальше давайте сами. что у вас там творится не очень понятно, сделать еще хуже в 5сек можно.
2 сен 11, 17:26    [11220202]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
желтый триггер
J3utajisi
По id. Скажем так удаляются объекты из таблицы, которые содержат кучу параметров в других таблицах.

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

Удаление и вставка происходит в нескольких таблицах по первичному или внешнему ключу. Все эти ключи гуиды, к сожалению.
2 сен 11, 17:45    [11220305]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
желтый триггер
Guest
J3utajisi,

проектируйте заново.
2 сен 11, 17:51    [11220345]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Звезда_в_шоке_!!
Guest
Почитал, осилил, Звезда в шоке....
2 сен 11, 17:58    [11220375]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
желтый триггер
J3utajisi,

проектируйте заново.

Согласен, только нужно хоть что-то в короткие сроки сделать. Досталось мне в наследство... никому не пожелаешь))
3 сен 11, 09:47    [11222266]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
sti
Member

Откуда:
Сообщений: 769
J3utajisi
желтый триггер
и в этих массовый изменениях нет ли у вас такой фигни, которая сначала всё удаляет, потом заново вставляет.
вы говорили о просадке чтений после массовых изменений, я все думаю про кластерные по гуидам.

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

В подобной ситуации ввел версионность данных и заменил физическое удаление на логическое. Физически данные неактуальных версий удаляются в джобе по расписанию.
Нужны только правильные индексы, чтобы процессы, читающие актуальные данные, и процессы, удаляющие неактуальные данные, друг друга не блокировали.
3 сен 11, 17:42    [11222787]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
MyNiGoo
Member

Откуда:
Сообщений: 230
прочитал весь тред запоем, круче детектива. ТС, отпишись, чем дело кончится
11 сен 11, 21:01    [11261065]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
MyNiGoo,

Утечки памяти были из-за рекурсии на сервере приложений.
Из оптимизации сильно помогло следующее:
3 ноя 11, 09:33    [11543996]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
J3utajisi
Member

Откуда:
Сообщений: 97
1. MAXDOP поставил 1
2. Убил с десяток составных индексов на ГУИДы
3. Создал новые индексы
4. Создал задания на ребилд индексов и перестроение статистики раз в неделю
3 ноя 11, 09:35    [11544004]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
убиван кен гуид
Guest
с гуидами битву продолжайте.
во многом тяжелы для работы они.
когда миграции массовы, дизаблить индексы хорошо.
3 ноя 11, 10:07    [11544172]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
kovalevu
Member

Откуда:
Сообщений: 6
Прошу помочь в решении любопытной проблемы. Есть большая система (база, куча клиентских приложений, служб, заданий). Все это хозяйство устойчиво работало на различном железе, под различными Windows Server 2003,2008 как 32, так и 64 битными. Что касаетcя SQL серверов, то они всегда были 32 битные, с AWE или без, но 32 битными. При переходе на 64 битный SQL сервер появилась утечка памяти и, как следствие, после максимум суток работы, сервер зависает – OutOfMemory.
Конфигурация : MS Windows 2008 R2 St (SP1)+ MS SQL 2008 R2 Ent(SP2).
Железо: Proliant 24 Гб, 2 процессора, 24 ядра.
Опытным путем было установлено, что вина за утечку лежит на нескольких 32 битных приложениях, которые абсолютно корректно работали с 32 битным SQL Server и под 64 битной, и под 32 OC. Для чистоты эксперимента были оставлены : СУБД, служба, обеспечивающая ввод данных в три таблицы (она не оказывает никакого влияния на утечку) и одно из 32 битных приложений, обеспечивающих обработку данных и разнесение их в три результирующие таблицы. Все остальное было отрублено. Плотность транзакций при вводе и обработке крошечная – 3-4 транзакции в секунду. Чтение исходных данных приложении с NOLOCK, через хранимые процедуры, вывод поизводится в таблицы, к которым нет обращения из других процессов, блокировок не обнаружено. Клиентское приложение отрабатывает за 300 -400 mc, запускается из студии, в цикле, через xp_cmdshell, или как задание Windows с частотой раз в минуту. При этом варьировались: MAXDOP, минимальная и максимальная память, выделение памяти для индексов и т.д.
Буду благодарен за любую информацию.
6 сен 12, 14:05    [13123847]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
kovalevu,

и как вы определили что идет утечка памяти именно в sql сервере?
6 сен 12, 14:38    [13124150]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
kovalevu
Member

Откуда:
Сообщений: 6
WarAnt
kovalevu,

и как вы определили что идет утечка памяти именно в sql сервере?


Я вовсе в этом не уверен - это просто предположение. Но когда я отрубаю данное приложение или запускаю его в той же самое среде с 32 битном SQL, то проблем нет. Что можете посоветовать для адекватной диагностики?
6 сен 12, 14:47    [13124234]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
kovalevu
WarAnt
kovalevu,

и как вы определили что идет утечка памяти именно в sql сервере?


Я вовсе в этом не уверен - это просто предположение. Но когда я отрубаю данное приложение или запускаю его в той же самое среде с 32 битном SQL, то проблем нет. Что можете посоветовать для адекватной диагностики?


чтобы что то советовать надо сначала видеть проблему, а её не видно из вашего повествования, кроме непонятно где выскакивающей ошибки OutOfMemory, я могу только преположить что у вас неправильно настроены границы потребления памяти сервером.
6 сен 12, 15:01    [13124365]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
kovalevu
Member

Откуда:
Сообщений: 6
WarAnt
kovalevu
пропущено...


Я вовсе в этом не уверен - это просто предположение. Но когда я отрубаю данное приложение или запускаю его в той же самое среде с 32 битном SQL, то проблем нет. Что можете посоветовать для адекватной диагностики?


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

Я варьировал память SQL сервера:0,2147483647;0,8192; 8192, 12288 и т.д. MAXDOP варьировалось от 1 до 8.
6 сен 12, 15:12    [13124439]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33977
Блог
kovalevu
При переходе на 64 битный SQL сервер появилась утечка памяти и, как следствие, после максимум суток работы, сервер зависает – OutOfMemory.


лучше бы вы привели оригинально сообщение об ошибке
6 сен 12, 16:35    [13125223]     Ответить | Цитировать Сообщить модератору
 Re: Утечки памяти MS SQL 2008  [new]
без шуток
Guest
kovalevu
Буду благодарен за любую информацию.

топик перечитай.
6 сен 12, 16:38    [13125248]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить