December 1, 2010 at 3:03 am
Comments posted to this topic are about the item Average Page Life Expectancy
😀
December 1, 2010 at 7:26 am
...or you could use perfmon to get the same.
December 1, 2010 at 7:30 am
Please don't laugh at me, but in my current environment our Network Admin does not allow the DBA's to view Perfmon on our servers. I know in most cases this is not the norm, so this script is redundant for those who have access to Perfmon. Although, for those poor souls who do not have access to Perfmon, then this script will fill the gap.
Thanks for the reply.
😀
December 1, 2010 at 8:10 am
Keith Browning (12/1/2010)
...or you could use perfmon to get the same.
True, but there's some overhead with constantly running a perfmon. Just scraping the already collected data from the DMV's is less overhead. We do something similar to this with the Memory Grants Pending metric. That's usually an indicator of memory saturation (ie we're dead in the water), but by itself is not that useful because it's not a predictive metric. It only tells me my server is dead, it doesn't tell me anything prior to the server becoming saturated.
Page Life Expectancy is a decent predictive metric. It's not the end-all-be-all metric for memory consumption, but at least it'll start an investigation which is usually all we need.
December 1, 2010 at 8:23 pm
The script did not work on my PC. I found the object_name is 'MSSQL$INST01:Buffer Manager' instead in my PC.
December 6, 2010 at 6:35 am
The code does not take the instance name into account.
Here is a solution that does.
/******************************************************************************
http://www.sqlservercentral.com/scripts/Performance+Monitoring/71677/
NOTES:
This script provides a sampling of PLE based on (1) minute intervals from
sys.dm_os_performance_counters. Originally written on November 11, 2010
by Tim Parker.
*******************************************************************************/
SET NOCOUNT ON
DECLARE @counter INT --This will be used to iterate the sampling loop for the PLE measure.
SET @counter = 0
BEGIN TRY
DROP TABLE #pleSample
END TRY
begin CATCH
END CATCH
CREATE TABLE #pleSample
(
CaptureTime DATETIME,
PageLifeExpectancy BIGINT
)
WHILE @counter < 30 --Sampling will run approximately 1 minute.
BEGIN
--Captures Page Life Expectancy from sys.dm_os_performance_counters
INSERT INTO #pleSample
(
CaptureTime,
PageLifeExpectancy
)
SELECT CURRENT_TIMESTAMP,
cntr_value
FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE N'%:Buffer Manager%'
AND counter_name = N'Page life expectancy'
SET @counter = @counter + 1
RAISERROR('loop number %i ', 10, 1, @counter) WITH NOWAIT
WAITFOR DELAY '000:00:02'
END
--This query will return the average PLE based on a 1 minute sample.
SELECT RIGHT(CONVERT(VARCHAR(24), DATEADD(SECOND, AVG(PageLifeExpectancy), 0), 113),12) AS 'Average Page Life Expectancy'
FROM #pleSample
DROP TABLE #pleSample
May 19, 2011 at 12:16 pm
Tell the adimins that they are aholes as you need to be able to view the perfomance in order to discern the effectiviness of your schema/queries/indexes
if they will not budge go to the upper guys and advise them you need the idera suite for monitoring this will cost quite a bit... If they give it to you you are golden if not then advise you will not be responsible for tuning as the power hungry sys admins are doing their bs power grab again. I was ready for this type of situation and when my network admin replied so what do you want admin rights on the whole system then respond YES I did and having such rights have saved me on several occasions. If that does not work when stuff goes down say you have no access to be able to fix as you are not allowed to view the perfomance as all dbas are.. Then flat out blame the network admin it worked for me
May 17, 2016 at 12:45 pm
Thanks for the script.
October 4, 2019 at 2:13 pm
I'm not too worried about the AVERAGE PLE
Right now it's 15165
What worries me is when it dips to 60
Viewing 9 posts - 1 through 8 (of 8 total)
You must be logged in to reply to this topic. Login to reply