Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Значение счетчика Foreign Page 500 000  [new]
mBlaze
Member

Откуда: Новосибирск
Сообщений: 26
Есть сервер WIN2008R2 SQL10.50.2806 Entr
архитектура 4 процессорная.
hyperthread_ratio = 20
4 Numa Node соответственно.
262 GB физической памяти, max server memory установлено 255gb
Lock page in memory = true
MAXDOP = 1
12 файлов tempdb вынесены на твердотельный диск.

Суть впороса, имеются проблемы с производительностью сервера.
Изучаем показатели счетчиков, тюним сиквел, тюним сервер.
В целом все было понятно, пока не подошел к набору счетчиков SQLServer: BufferNode - Foreign Page
На ноде 000 значение счетчика в среднем в рабочее 700 000.
другие 3 ноды имеют значение 0.

Насколько я понимаю данный счетчик указывает на то, что нода берет страницы не из своего пула памяти а из страниц "соседней" ноды.

Читал про работу sql и numa в картинку целостную, что к чему/плохо/хорошо, если честно не сложилось.
Есть ощущение, что хорошего в данном контексте ни чего не происходит. а вот куда камлать дальше не придумал пока.

Буду признателен за ваши комментарии, а так же полезные источники информации по этому вопросу.
25 сен 12, 08:46    [13216509]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
mBlaze
Есть сервер WIN2008R2 SQL10.50.2806 Entr
архитектура 4 процессорная.
hyperthread_ratio = 20
4 Numa Node соответственно.
262 GB физической памяти, max server memory установлено 255gb
Lock page in memory = true
MAXDOP = 1
12 файлов tempdb вынесены на твердотельный диск.

Суть впороса, имеются проблемы с производительностью сервера.
Изучаем показатели счетчиков, тюним сиквел, тюним сервер.
В целом все было понятно, пока не подошел к набору счетчиков SQLServer: BufferNode - Foreign Page
На ноде 000 значение счетчика в среднем в рабочее 700 000.
другие 3 ноды имеют значение 0.

Насколько я понимаю данный счетчик указывает на то, что нода берет страницы не из своего пула памяти а из страниц "соседней" ноды.

Читал про работу sql и numa в картинку целостную, что к чему/плохо/хорошо, если честно не сложилось.
Есть ощущение, что хорошего в данном контексте ни чего не происходит. а вот куда камлать дальше не придумал пока.

Буду признателен за ваши комментарии, а так же полезные источники информации по этому вопросу.
Я не думаю, что 5.5 гигов из чужого нода, тогда когда каждому ноду доступно по 64 гига это прям уже вселенская проблема. В любом случае это память, а не диск и доступ все равно относительно быстрый. 
Лучше копать в других направлениях. Что у вас с остальными счетчиками по нодам и вообще по памяти?
25 сен 12, 20:03    [13221370]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
Изучаем показатели счетчиков, тюним сиквел, тюним сервер.


Рассказали бы, что-ли, что изучили и что потюнили, пока не добрались до SQLServer: BufferNode - Foreign Page?
25 сен 12, 20:28    [13221456]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
И вот эти вот три пункта:
автор
MAXDOP = 1
12 файлов tempdb вынесены на твердотельный диск.


не плохо бы обосновать...
25 сен 12, 20:35    [13221483]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
mBlaze
Member

Откуда: Новосибирск
Сообщений: 26
не указал размер БД: 600ГБ.
Что было уже сделано:
1. Вынос tempdb на SSD
2. Форматирование SSD на 64кб
3. Оптимизации хп, борьба за миллисекунды
4. Заказали КЭШ для SSD, выяснили что latensy на запись больше чем у ЕВЫ
5. MAXDOP на сервере = 1
6. Треды = 1472
7. Статистика обновляется раз в неделю с полным сканированием.

Сегодня вернул MAXDOP 4
Foreign page появился на трех других нодах 79 000, 124 000, 175000 соответственно.


Что изучено:
1. Диски в целом все хорошо, в задержки не упираемся, read|write в норме, кроме замеченных проблем на SSD.
2. Попаданий в кэш 100%
3. Время жизни страницы 11000
4. lazy write близко к нулю
5. Рекомпиляции копейки
6. split page около сотни
7. проц практически не используется

слегка поюзал своп, менее 5%

Что не нравится:
1. Foreign page
2. DBCC Memorystatus указывает
Manager
Memory Node = 1
VM Reserved 270375784
VM Committed 1760536
-------------------------
MemoryClerk_BufferPull
VM Reserved 268713984
VM Committed 262144
Locked Pages Allocated 257187200


Остальные ноды типа без пула что ли%).
И не ясно менеджер использует память на ноде 1, клекр на ноде 0. или это разные ноды?

3. Target page чуть меньше чем есть(чем дают)
4. Есть симафор "не хватает физической памяти для запросов" (отдельное спасибо за экспресс тест)
5. Сиквел хочет памяти на 20 гиг больше чем ему дают (target|total memory)
6. своп тоже не нравится. но это решится ребилдом ночным.


что будет сделано:
1. Сегодня ребилд топ 10 таблиц, нашел статью про использование буфера на предмет пустых страниц, оказалось 200/50 ГБ (USED/EMPTY).

Ну вот что быстро вспомнил.
25 сен 12, 21:12    [13221591]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
mBlaze
Member

Откуда: Новосибирск
Сообщений: 26
pkarklin
И вот эти вот три пункта:
автор
MAXDOP = 1
12 файлов tempdb вынесены на твердотельный диск.


не плохо бы обосновать...

maxdop =1
параллелизм ставит в позу всех и вся. то есть совсем не верно определяется необходимость использования параллелизма.
обусловлено структурой БД. разработчиками.

количество файлов tempdb выбрано эмпирически, аля не много не мало. обычно выставляю не более 6-8 в зависимости от количества ядер. то есть один файл на ядро не разумно, учитывая отсутствия параллелизма прикинув примерно, "а давай сделаем столько" - то есть не исследовано.
25 сен 12, 21:19    [13221610]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Как это:

автор
размер БД: 600ГБ


Может тормозить на этом:

автор
архитектура 4 процессорная.
...
262 GB
...
tempdb на SSD


?

автор
проц практически не используется


и
автор
Диски в целом все хорошо, в задержки не упираемся, read|write в норме


при этом

автор
проблемы с производительностью сервера


Что-то одно с другим не вяжется.

автор
в задержки не упираемся, read|write в норме


А в цифрах это сколько?

И это бы:
автор
кроме замеченных проблем на SSD

расшифровать...
25 сен 12, 21:22    [13221620]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
mBlaze
параллелизм ставит в позу всех и вся. то есть совсем не верно определяется необходимость использования параллелизма.


Вы пытались выяснить, почему?


mBlaze
обусловлено структурой БД. разработчиками.


Печально...

mBlaze
количество файлов tempdb выбрано эмпирически, аля не много не мало. обычно выставляю не более 6-8 в зависимости от количества ядер. то есть один файл на ядро не разумно, учитывая отсутствия параллелизма прикинув примерно, "а давай сделаем столько" - то есть не исследовано.


И какие проблемы были с tempdb? Даже на SSD?
25 сен 12, 21:25    [13221629]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
mBlaze
не указал размер БД: 600ГБ.
Сегодня вернул MAXDOP 4
Foreign page появился на трех других нодах 79 000, 124 000, 175000 соответственно.
7. проц практически не используется
1. Foreign page
Так у вас каждый процесс юзает не больше 1 CPU, нагрузки на процессор как вы говорите нету. Так может у вас все запросы выполняеются только на первых 10 ядрах, что является нулевой нодой, соответственно она подгребает под себя память с других нодов, которые фактически то не используются.
При включении MAXDOP 4 подключаются к работе другие ноды, вот вам и Foreign page.
25 сен 12, 21:32    [13221650]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
mBlaze
4. Есть симафор "не хватает физической памяти для запросов" (отдельное спасибо за экспресс тест)
Если честно, ничего не понял. Что за семафор, что за экспресс тест? Memory Grants Pending что-ли?

mBlaze
5. Сиквел хочет памяти на 20 гиг больше чем ему дают (target|total memory)
А это как вы выяснили из target|total ?

mBlaze
6. своп тоже не нравится. но это решится ребилдом ночным.
Не понял какая связь.


Если у вас все показатели в норме, дайте тогда определение:
mBlaze
Суть впороса, имеются проблемы с производительностью сервера.
25 сен 12, 21:37    [13221665]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
mBlaze
Member

Откуда: Новосибирск
Сообщений: 26
pkarklin
mBlaze
параллелизм ставит в позу всех и вся. то есть совсем не верно определяется необходимость использования параллелизма.

Вы пытались выяснить, почему?
mBlaze
обусловлено структурой БД. разработчиками.

Печально...
mBlaze
количество файлов tempdb выбрано эмпирически, аля не много не мало. обычно выставляю не более 6-8 в зависимости от количества ядер. то есть один файл на ядро не разумно, учитывая отсутствия параллелизма прикинув примерно, "а давай сделаем столько" - то есть не исследовано.

И какие проблемы были с tempdb? Даже на SSD?


2Praklin:
1. Как минимум при компиляции имеем ожидаемое много больше чем есть в актуальном плане. Так проявляет себя учитывая только что обновленную статистику.
2. Согласен
3. Повторюсь, время на запись больше чем на EVA, SSD пока без кэша.
4. Sec/read в пики 0.03 среднее 0.01, sec/write 0.00. SSD Sec/Write в пики 0.02 среднее 0.01, sec/read 0.00
2Mind:
Ожидал некой балансировки все же.
Экспресс тест
WITH RingBufferXML
AS(SELECT CAST(Record AS XML) AS RBR FROM sys .dm_os_ring_buffers
   WHERE ring_buffer_type = 'RING_BUFFER_RESOURCE_MONITOR'
  )
SELECT DISTINCT 'Зафиксированы проблемы' =
          CASE
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint')  = 0 AND
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 2 
                    THEN 'Недостаточно физической памяти для системы'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint')  = 0 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 4 
                    THEN 'Недостаточно виртуальной памяти для системы' 
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]', 'tinyint') = 2 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 0 
                    THEN'Недостаточно физической памяти для запросов'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]', 'tinyint') = 4 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]', 'tinyint')  = 4
                    THEN 'Недостаточно виртуальной памяти для запросов и системы'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint')  = 2 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]','tinyint')   = 4 
                    THEN 'Недостаточно виртуальной памяти для системы и физической для запросов'
                    WHEN XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]', 'tinyint') = 2 AND 
                         XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]', 'tinyint')  = 2 
                    THEN 'Недостаточно физической памяти для системы и запросов'
         END
FROM        RingBufferXML
CROSS APPLY RingBufferXML.RBR.nodes ('Record') Record (XMLRecord)
WHERE       XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint') IN (0,2,4) AND
            XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]' ,'tinyint') IN (0,2,4) AND
            XMLRecord.value('(ResourceMonitor/IndicatorsProcess)[1]','tinyint') +
            XMLRecord.value('(ResourceMonitor/IndicatorsSystem)[1]' ,'tinyint') > 0


Total Target - не верно интерпретировал описание, был не прав. счетчики в целом на одном уровне -+ гиг. взял еще reseverded и committed в буфере, плюс тест выше и решил, что надо ему еще, просит.

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

Когда писал имел главный вопрос по работе с памятью и счетчиком. Есть понимание, что упираемся еще и в описанные бизнес процессы. Со своей стороны делаю с сервером, что могу. Кручу верчу, бубном стучу.
25 сен 12, 22:12    [13221745]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
автор
4. Sec/read в пики 0.03 среднее 0.01, sec/write 0.00. SSD Sec/Write в пики 0.02 среднее 0.01, sec/read 0.00


Если это в секундах, то даже очень неплохо. Так в чем тормоза системы?
25 сен 12, 22:30    [13221796]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
Покажите ожидания.
+
WITH Waits AS
(SELECT wait_type, wait_time_ms / 1000. AS wait_time_s,
100. * wait_time_ms / SUM(wait_time_ms) OVER() AS pct,
ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS rn
FROM sys.dm_os_wait_stats
WHERE wait_type NOT IN ('CLR_SEMAPHORE','LAZYWRITER_SLEEP','RESOURCE_QUEUE','SLEEP_TASK',
'SLEEP_SYSTEMTASK','SQLTRACE_BUFFER_FLUSH','WAITFOR', 'LOGMGR_QUEUE','CHECKPOINT_QUEUE',
'REQUEST_FOR_DEADLOCK_SEARCH','XE_TIMER_EVENT','BROKER_TO_FLUSH','BROKER_TASK_STOP','CLR_MANUAL_EVENT',
'CLR_AUTO_EVENT','DISPATCHER_QUEUE_SEMAPHORE', 'FT_IFTS_SCHEDULER_IDLE_WAIT',
'XE_DISPATCHER_WAIT', 'XE_DISPATCHER_JOIN', 'SQLTRACE_INCREMENTAL_FLUSH_SLEEP',
'ONDEMAND_TASK_QUEUE', 'BROKER_EVENTHANDLER', 'SLEEP_BPOOL_FLUSH'))
SELECT W1.wait_type, 
CAST(W1.wait_time_s AS DECIMAL(12, 2)) AS wait_time_s,
CAST(W1.pct AS DECIMAL(12, 2)) AS pct,
CAST(SUM(W2.pct) AS DECIMAL(12, 2)) AS running_pct
FROM Waits AS W1
INNER JOIN Waits AS W2
ON W2.rn <= W1.rn
GROUP BY W1.rn, W1.wait_type, W1.wait_time_s, W1.pct
HAVING SUM(W2.pct) - W1.pct < 99.99 OPTION (RECOMPILE); -- percentage threshold
25 сен 12, 22:32    [13221809]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
mBlaze
2Mind:
Ожидал некой балансировки все же.

Насколько я понимаю балансировка рабоатет между ядрами, а не между нодами.

mBlaze
Экспресс тест
"не хватает физической памяти для запросов" весьма такое сбивающее с толку описание. Я бы назвал это - internal memory pressure.

mBlaze
1. Как минимум при компиляции имеем ожидаемое много больше чем есть в актуальном плане. Так проявляет себя учитывая только что обновленную статистику.
Плохо, очень плохо. Можно попробовать использовать хитрый хинт, но нужно больше информации.

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

Что в момент тормозов (если таковые вообще есть) показывают:
Memory Grants Pending
PLE
Stolen pages/Database pages ?
25 сен 12, 22:43    [13221861]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
mBlaze
Member

Откуда: Новосибирск
Сообщений: 26
Есть само писанный репликатор данных, есть 15 потоков импорта заявок от клиентов и 15 потоков отправки заявок на склад. Каждый поток работает под своей сессией. Потоки импорта заявок блокируется записи для своего бизнесс процесса, потоки отправки на склад для своего.
В определенный момент времени формируется очередь из большого количества заявок от клиента не обработанных, назовем это пик сброса заявок, в этом момент хранимая процедура резервирования товара по складу(потоки отправки заявок на склад) начинается выполнятся вместо 100мс, 3-5 секунду на одну позицию в заявке с зависанием потоков по не сколько минут на одну заявку. Что собственно влияет на загрузку склада и отгрузку клиентам. В ХП четко прописано блокировки записей до конца транзакций(HOLDLOCK,UPDLOCK), в момент пиковых сбросов растет время выполнения хп, растет время блокирования, растет время ожидания. очередь в итоге присасывается, но не так быстро как хочется начальство, и пока вся эта хрень присосется имеем простой склада и ковейера.

Потоки 1 типа и потоки 2 типа на 80% обращаются к один и тем же таблицам, работа с позициями в заявке атомарная, то есть на каждую позицию выполняется разово ХП резервирования например. одной транзакйией.
В итоге в пики имеем например заявку в 100 позиций, время обработки будет если хп резервирования будет выполнятся хотя бы в среднем 1 секунду, = 100 секунд и это только одна из операций.

вкратце проблема.

Memory Grants Pending за рассматриваемый промежуток(сутки) на всем графике 0

PLE с момента начала работы до конца рабочего дня растет утром имеем показатель 28000, когда начинаем активно работать резко падаем до 11000 и плавно до конца рабочего дня растем до 18000, в итоге снова возвращаемся на показатель 28000.

Stolen pages/Database pages - к сожалению не пишем, информации нет.

по ожиданиям имеем след.:
wait_type	wait_time_s	pct	running_pct
LCK_M_X	1169246.08	48.80	48.80
DBMIRROR_EVENTS_QUEUE	234050.18	9.77	58.57
DBMIRRORING_CMD	215015.04	8.97	67.54
LCK_M_RS_U	149263.51	6.23	73.77
CXPACKET	109662.27	4.58	78.35
LCK_M_S	94268.19	3.93	82.29
OLEDB	66289.68	2.77	85.05
LCK_M_IS	44988.59	1.88	86.93
SOS_SCHEDULER_YIELD	42655.91	1.78	88.71
WRITELOG	41921.77	1.75	90.46
TRACEWRITE	30780.80	1.28	91.74
LCK_M_IX	30661.96	1.28	93.02
BACKUPIO	23677.44	0.99	94.01
BACKUPBUFFER	21033.68	0.88	94.89
PAGEIOLATCH_SH	20852.48	0.87	95.76
LCK_M_SCH_S	18325.74	0.76	96.53
ASYNC_IO_COMPLETION	17836.86	0.74	97.27
DBMIRROR_SEND	9003.21	0.38	97.65
DBMIRROR_WORKER_QUEUE	7808.17	0.33	97.97
ASYNC_NETWORK_IO	7766.47	0.32	98.30
PAGEIOLATCH_EX	6405.94	0.27	98.56
PAGELATCH_EX	6397.54	0.27	98.83
IO_COMPLETION	5977.48	0.25	99.08
LCK_M_RIn_NL	5228.92	0.22	99.30
LCK_M_U	2969.15	0.12	99.42
LCK_M_RS_S	2872.20	0.12	99.54
LATCH_EX	1668.24	0.07	99.61
BROKER_RECEIVE_WAITFOR	1200.01	0.05	99.66
LCK_M_IU	1118.19	0.05	99.71
PAGELATCH_SH	902.48	0.04	99.75
EE_PMOLOCK	792.09	0.03	99.78
BACKUPTHREAD	720.32	0.03	99.81
RESOURCE_SEMAPHORE	481.53	0.02	99.83
LATCH_SH	423.85	0.02	99.85
PREEMPTIVE_OS_AUTHENTICATIONOPS	403.76	0.02	99.86
MSQL_XP	395.45	0.02	99.88
PREEMPTIVE_OS_GETPROCADDRESS	393.75	0.02	99.90
LOGBUFFER	373.16	0.02	99.91
LCK_M_SCH_M	276.23	0.01	99.92
EXECSYNC	252.65	0.01	99.93
SLEEP_DBSTARTUP	180.70	0.01	99.94
PAGEIOLATCH_UP	166.13	0.01	99.95
PREEMPTIVE_OS_CREATEFILE	153.89	0.01	99.96
PREEMPTIVE_OS_LOOKUPACCOUNTSID	152.81	0.01	99.96
PREEMPTIVE_OS_WAITFORSINGLEOBJECT	142.85	0.01	99.97
PREEMPTIVE_OS_DELETESECURITYCONTEXT	125.56	0.01	99.97
PREEMPTIVE_OS_WRITEFILEGATHER	123.45	0.01	99.98
PREEMPTIVE_OS_AUTHORIZATIONOPS	118.10	0.00	99.98
PAGELATCH_UP	99.44	0.00	99.99
CMEMTHREAD	49.33	0.00	99.99
PREEMPTIVE_OS_NETVALIDATEPASSWORDPOLICY	45.22	0.00	99.99
26 сен 12, 07:44    [13222620]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
mBlaze
Member

Откуда: Новосибирск
Сообщений: 26
mBlaze
Есть само писанный репликатор данных, есть 15 потоков импорта заявок от клиентов и 15 потоков отправки заявок на склад. Каждый поток работает под своей сессией. Потоки импорта заявок блокируется записи для своего бизнесс процесса, потоки отправки на склад для своего.


ну и конечно по мимо этой нагрузки есть масса других бизнес процессов создающих нагрузку в БД.
но борьба идет с местом описанным выше.
26 сен 12, 07:45    [13222624]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
mBlaze,

Я не пойму чего вы в Foreign Pages тогда полезли то. Прежде чем лечить мнимые проблемы с памятью  лучше разберитесь с вашими блокировками, у вас почти  50% ожиданий это эксклюзивные блокировки. Я думаю пришло время в корне пересмотреть ваш "бизнесс процесс". Вряд ли тут проблема в нехватке ресурсов.
26 сен 12, 11:17    [13223731]     Ответить | Цитировать Сообщить модератору
 Re: Значение счетчика Foreign Page 500 000  [new]
mBlaze
Member

Откуда: Новосибирск
Сообщений: 26
Mind
mBlaze,

Я не пойму чего вы в Foreign Pages тогда полезли то. Прежде чем лечить мнимые проблемы с памятью  лучше разберитесь с вашими блокировками, у вас почти  50% ожиданий это эксклюзивные блокировки. Я думаю пришло время в корне пересмотреть ваш "бизнесс процесс". Вряд ли тут проблема в нехватке ресурсов.


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

Поэтому и задал вопрос по не понятным мне вещам.

Спасибо за Ваше внимание к теме и полезные комментарии.
26 сен 12, 12:20    [13224330]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить