Здравствуйте, John Scherbatov, Вы писали:
JS>Интересные результаты... JS>Скажите , а в QA у вас есть утечка?
Иногда есть, иногда раза три-четыре выполнял этот запрос, и никакого увеличения не происходило.
А вообще объем занимаемой памяти растет по чуть-чуть, при любых запросах... Но еще не было такого, чтобы сервер свалился от того, что ему не хватило RAM и он ушел в своп...
Скажите, а нет возможности отрубать постоянные коннекты на некоторое время? возможно они держат на себе большое количество ресурсов?
declare @i integer
set @i=0
while (@i<10000)
begin
SELECT DISTINCT
MAP.DB_ID
FROM
OUT_REPLICA_PROPERTY AS PROPERTY,
OUT_REPLICA_DB_MAP AS MAP,
OUT_REPLICA_LOG AS LOG
WHERE
PROPERTY.REPLICA_GUID = MAP.REPLICA_GUID
AND
LOG.REPLICA_GUID = MAP.REPLICA_GUID
AND
PROPERTY.REPLICA_TYPE = 0
AND
(MAP.FILL_STATUS IS NULL OR MAP.FILL_STATUS = 0)
AND
MAP.DB_ID in (2)
AND
LOG.IID < ( SELECT MIN (IID) FROM OUT_REPLICA_LOG WHERE REPLICA_GUID = '3FD1F219-7B00-4E79-86A1-8B6F783C610B')
set @i=@i+1
end
Как видите, данный селект исполняется 10000 раз.
При этом утечек памяти вообще нет. Занимаемая память колеблется вокруг 16700K (обе колонки Mem Usage и VM Size).
Product: SQL Server Developer Edition
OS: MS Win NT 5.1 (2600)
Product Version: 8.00.194(RTM)
OS Memory: 512 MB
Processor: 1
Конфигурация памяти — динмаическая, от 0 до 511
Max Worker Threads = 255
Boost Priority — off
NT Fibers — off
... << RSDN@Home 1.1 beta 2 >>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Merle, Вы писали:
M>Здравствуйте, John Scherbatov, Вы писали:
JS>>Хорошо.. он может съедать память под кэш. Но как объяснить тогда описываемую мной ситуацию, что я ставлю ему ограничение в 50 М. Один запрос (на пустые таблицы!!!!!) съедает 40К и как только СКЛ доходит до заветных 50 М — он выдает сообщение, что все память кончилась ...?? И ещё.. эта ситуация наблюдается только с приведенным мной запросом — во всех остальных случаях все работает "по честному". M>Надо посмотреть на блокировки и на наличие незафиксированных транзакций.
А через Performance не пробовал глянуть? Ну там число соединений, сессий и так далее, мне в таких слуях эти счетчики сильно помогали для отслеживания утечек.
JS>Есть СКЛ Сервер 2000 (или МСДЕ 2000 результат один и тот же). JS>Параметры: JS>Microsoft SQL Server 2000 — 8.00.384 (Intel X86) May 23 2001 00:02:52 Copyright (c) 1988-2000 Microsoft Corporation Desktop Engine on Windows NT 5.0 (Build 2195: Service Pack 3)
Смущает что установлен всего лишь Service Pack 1. Например, в багах до 2 СП значится утечка памяти при быстром коннекте/диссконнекте. Зачему также что у товарища вообще без СП (8.00.194) вроде как работает. Рекомендую поставить 3 СП и проверить.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, John Scherbatov, Вы писали:
S>Я слегка поменял текст второго скрипта: S>
S>declare @i integer
S>set @i=0
S>while (@i<10000)
S>begin
S> LOG.IID < ( SELECT MIN (IID) FROM OUT_REPLICA_LOG WHERE REPLICA_GUID = '3FD1F219-7B00-4E79-86A1-8B6F783C610B')
S> set @i=@i+1
S>end
S>
S>Как видите, данный селект исполняется 10000 раз. S>При этом утечек памяти вообще нет. Занимаемая память колеблется вокруг 16700K (обе колонки Mem Usage и VM Size). 2 Sinclair
И ещё такой момент. В селекте указан ГУИД '3FD1F219-7B00-4E79-86A1-8B6F783C610B'. От запроса к запросу его нужно менять (например первую цифру), т.е. чтобы выборка не повторялась. Тогда память начнет течь