SQL SERVER – What is Page Life Expectancy (PLE) Counter

During performance tuning consultationconsultation, there are plenty of counters and values, I often come across. Today we will quickly talk about Page Life Expectancy counter, which is commonly known as PLE as well.

You can find the value of the PLE by running the following query.

SELECT [object_name],
[counter_name],
[cntr_value] FROM sys.dm_os_performance_counters
WHERE [object_name] LIKE '%Manager%'
AND [counter_name] = 'Page life expectancy'

The recommended value of the PLE counter is (updated: minimum of) 300 seconds. I have seen on busy system this value to be as low as even 45 seconds and on unused system as high as 1250 seconds. Page Life Expectancy is the number of seconds a page will stay in the buffer pool without references. In simple words, if your page stays longer in the buffer pool (area of the memory cache) your PLE is higher, leading to higher performance as every time request comes there are chances it may find its data in the cache itself instead of going to the hard drive to read the data.

Now check your system and post back what is this counter value for you during various times of the day. Is this counter any way related to performance issues for your system?

Note: There are various other counters which are important to discuss during the performance tuning and this counter is not everything.

Update: PLE counter should be me 300 or more (OLTP Blueprint – A Performance Profile of OLTP applications)

Update2: Paul has done very technical and informative blog post where he explains the reasons and the correct answer for PLE. Read here.

Reference: Pinal Dave (https://blog.sqlauthority.com)

Previous Post
SQL SERVER – Activity Monitor and Performance Issue
Next Post
SQL SERVER – What the Business Says Is Not What the Business Wants

Related Posts

70 Comments. Leave new

  • Hi, Pinal I have SQL Server 2008 and my Page Life Expectancy is 80

    Reply
  • Likhitha Reddy
    February 7, 2012 2:26 am

    Hi Pinal,

    At our SQLServer the result is as below.

    Buffer Manager – Page life expectancy – 2328
    Is it good or not ?

    Reply
  • Prasad Barhanpure
    February 22, 2012 11:30 am

    Does it really helpful. Its just a SQL Server engine who takes care of it. I tried to clear the cache manually and then provided Lock pages in memory.
    The issue mostly occurs in Standard edition of sql server.

    Please help me to get it fixed.

    Reply
  • Cees Cappelle
    April 5, 2012 1:10 pm

    We have three identical boxes running SQL2005 each with 56GB internal and shared SAN connections, dual qaud core xeons.
    Server 1 is used for OTLP, Normal PLE is around 6000, peaks to 12000 during off-time, drops to 600 or less during login time.
    Server 2 is used for reporting. Normal PLE is around 60000, peaks to 120000 during off-time, drops to as low as 150.
    Server3 is on standby and has a PLE of 142000.

    Trying to find why the PLE drops during login times and if there’s a solution.

    Reply
    • Updated servers to 96Gb. Maxed SQL mem to 90Gb. Recently saw a post on this, that suggests simmilar values (
      PLE has dramatically incresed. Box 1 to around 80000, Box2 to around 150000, Box3 to 300000.
      Went to 96Gb by checking the loaded databases sizes.

      Reply
  • Hello Pinal,

    Great Post. I seems to be OS Counter. I executed the query on two different servers, the outcome was different on both of them. Confusing to see two different OS parameter values on two servers with identical configurations.

    Values were : 8925 and 207671

    Is it okay or any action is needed, Please suggest.

    R.Kapil

    Reply
    • Why would this be confusing? It is a SQL counter which is highly dependent of the SQL server load and also of the query behavior – not only the configuration. Your values however, are both fine.

      Reply
  • PLE value on my server is 1102, is that OK?

    Reply
  • Rick Schweiger
    January 11, 2013 10:52 pm

    Robert,

    I guess that depends on how much memory you have dedicated to SQL Server and how large your database(s) are. If you are running small-ish databases with large-ish RAM (over 64G) then that number could be a lot better. The 300 number is a pre-x64 number when your maximum RAM was 4GB. Paul Randal has one of the better articles on this: https://www.sqlskills.com/blogs/paul/page-life-expectancy-isnt-what-you-think/

    Reply
  • Pinal – I appreciate your posts and find them helpful. There is much to keep in mind in administering SQL Server, and I think those who have something to contribute (or dispute) can do so with courtesy to the benefit of all, without disparagement.

    Reply
  • Hi Pinal,
    I read your blog very often but this is the first time I’m leaving a comment. I know you wrote this a while ago, but it seems that the idea of a best practice value (despite Microsoft’s recommendation) is no longer valid. I just read this: where they suggest getting a baseline figure and working from there.

    Reply
  • Ok maybe don’t wanna retire this blog cause it stand #1 on google search for “page life expectancy” . But PLEASE PLEASE update the 300 sec metric on page life expectancy to a higher value. I’ve always been a fan of your website. When i make recommendations to my company and the recommendations is based on your blogs, I want to make sure they are valid and up to date.

    Reply
  • So if I have a Page Life Expectancy of 1238 is that good or is that bad? I am confused.

    Reply
  • There’s a really good reference here for different database checks (this one is for SQL 2012):
    [link to dropbox is showing 404 so removed]

    If you have multilple numa nodes, you can use the following:

    SELECT @@SERVERNAME AS [Server Name], [object_name], instance_name, cntr_value AS [Page Life Expectancy]
    FROM sys.dm_os_performance_counters WITH (NOLOCK)
    WHERE [object_name] LIKE N’%Buffer Node%’ — Handles named instances
    AND counter_name = N’Page life expectancy’ OPTION (RECOMPILE);

    Reply
  • Hello Pinal ,
    Thanks for your post and in my server the counter value is 162238.
    Is it Good r Bad? to have such a value

    Reply
  • As this thread still seems active, I thought I’d add a couple of useful links…

    https://www.sqlskills.com/blogs/jonathan/finding-what-queries-in-the-plan-cache-use-a-specific-index/

    …and…

    https://www.sqlskills.com/blogs/paul/page-life-expectancy-isnt-what-you-think/

    I have for a number of years considered the recommendation by MS of 300 for PLE to be way too low. Both Jonathan and Paul – very well respected experts in SQL Server – cover this very well, with Jonathan putting forward a reasonable formula for attempting to calculate PLE.

    Hope its useful.

    humbleDBA

    PS You should believe all you read because it is from MS. They make mistakes too.

    Reply
  • *shouldn’t believe

    Reply
  • anyone use script tag for alert but alert box is working here ?

    Reply
  • Srikanth Chakravarthi Thota
    April 8, 2015 12:30 pm

    The page life expectancy is more its fine. But less than 600 its problem to
    Server..

    Reply
  • Pinal Dave,

    I have two systems both hosting Dynamics GP\SQL and AD. Experiencing slow performance and showing a PLE of 3 and 5! Any suggesstions

    Reply
  • Manuel Flores
    July 31, 2015 3:13 am

    Hi, Pinal, I run the script and the resoult is 59951 its a very big number…

    you know how can I fix it?

    my email is [email removed] thank you

    Reply
  • Just an add-in, since this thread is being kept alive.

    I have a client with an SQL server with a page life expectancy of over 20 days (1741915 secs).
    It’s not even that the server doesn’t get used (or rarely, for that matter).

    It’s running on 32GB of memory as a virtual, and has around a dozen and a half databases.
    No slouch, but every server runs different depending on the use.

    Reply

Leave a Reply Cancel reply

Menu
Exit mobile version