Temp DB getting full.. Any remedies

  • Hello Everyone,

    I have a proc, that is used as a job previously that pulls lot of data. From the past 2 days, it is getting failed due to the reason, Temp DB getting full. It is a proc with lot of Outer joins and Group By statements and pulling lot of data from XML too.. Is there any solution for this. This is how my temp db looks like right now.

    I used the following query on my DB and got the

    SELECT

    name AS FileName,

    size*1.0/128 AS FileSizeinMB,

    CASE max_size

    WHEN 0 THEN 'Autogrowth is off.'

    WHEN -1 THEN 'Autogrowth is on.'

    ELSE 'Log file will grow to a maximum size of 2 TB.'

    END,

    growth AS 'GrowthValue',

    'GrowthIncrement' =

    CASE

    WHEN growth = 0 THEN 'Size is fixed and will not grow.'

    WHEN growth > 0 AND is_percent_growth = 0

    THEN 'Growth value is in 8-KB pages.'

    ELSE 'Growth value is a percentage.'

    END

    FROM tempdb.sys.database_files;

    GO

    tempdev400.000000Autogrowth is on.10Growth value is a percentage.

    templog300.000000Autogrowth is on.10Growth value is a percentage.

    tempdev1400.000000Autogrowth is on.128Growth value is in 8-KB pages.

    tempdev2400.000000Autogrowth is on.128Growth value is in 8-KB pages.

    tempdev3400.000000Autogrowth is on.128Growth value is in 8-KB pages.

    Any Suggestion would be really helpful. Thanks in advance.

    Good Luck πŸ™‚ .. Visit www.sqlsaga.com for more t-sql code snippets and BI related how to articles.

  • Larger growth increments (fixed MB), grow TempDB manually, ensure there's enough space on the drive, tune the queries to use less TempDB.

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • GilaMonster (9/21/2012)


    Larger growth increments (fixed MB), grow TempDB manually, ensure there's enough space on the drive, tune the queries to use less TempDB.

    Growth size is 8KB and 10% on the other.. I actually dont know what they are.. My question is do I have to change them??

    Grow tempdb manually? are there any steps to do it?

    Enough space on the drive -- There is like 40GB on the drive.

    queries are using Left joins on XML and I will try to optimize too, before that any other suggestions on the above listed.

    Good Luck πŸ™‚ .. Visit www.sqlsaga.com for more t-sql code snippets and BI related how to articles.

  • That's default growth increments, as I said, you probably want larger growth increments.

    Growing a file manually - ALTER DATABASE ... ALTER FILE

    Gail Shaw
    Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
    SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability

    We walk in the dark places no others will enter
    We stand on the bridge and no one may pass
  • GilaMonster (9/21/2012)


    That's default growth increments, as I said, you probably want larger growth increments.

    Growing a file manually - ALTER DATABASE ... ALTER FILE

    Can you please elaborate more.. This is my first time doing this. Also can you tell me is that a good way to do it?

    Good Luck πŸ™‚ .. Visit www.sqlsaga.com for more t-sql code snippets and BI related how to articles.

  • a4apple (9/21/2012)


    Hello Everyone,

    I have a proc, that is used as a job previously that pulls lot of data. From the past 2 days, it is getting failed due to the reason, Temp DB getting full. It is a proc with lot of Outer joins and Group By statements and pulling lot of data from XML too.. Is there any solution for this. This is how my temp db looks like right now.

    I used the following query on my DB and got the

    SELECT

    name AS FileName,

    size*1.0/128 AS FileSizeinMB,

    CASE max_size

    WHEN 0 THEN 'Autogrowth is off.'

    WHEN -1 THEN 'Autogrowth is on.'

    ELSE 'Log file will grow to a maximum size of 2 TB.'

    END,

    growth AS 'GrowthValue',

    'GrowthIncrement' =

    CASE

    WHEN growth = 0 THEN 'Size is fixed and will not grow.'

    WHEN growth > 0 AND is_percent_growth = 0

    THEN 'Growth value is in 8-KB pages.'

    ELSE 'Growth value is a percentage.'

    END

    FROM tempdb.sys.database_files;

    GO

    tempdev400.000000Autogrowth is on.10Growth value is a percentage.

    templog300.000000Autogrowth is on.10Growth value is a percentage.

    tempdev1400.000000Autogrowth is on.128Growth value is in 8-KB pages.

    tempdev2400.000000Autogrowth is on.128Growth value is in 8-KB pages.

    tempdev3400.000000Autogrowth is on.128Growth value is in 8-KB pages.

    Any Suggestion would be really helpful. Thanks in advance.

    Unless I'm readinng this output you provided incorrectly, TempDb is sitting at a total of 1.6GB with a 300MB log. That's not what I'd consider to be a large TempDB. I boot my production servers with a 20GB TempDB and even that is small by some folk's standards.

    Why do you think TempDB is getting full? Are you approaching the physical disk limit?

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)

  • a4apple (9/21/2012)


    Hello Everyone,

    I have a proc, that is used as a job previously that pulls lot of data. From the past 2 days, it is getting failed due to the reason, Temp DB getting full. It is a proc with lot of Outer joins and Group By statements and pulling lot of data from XML too.. Is there any solution for this.

    ...

    Any Suggestion would be really helpful. Thanks in advance.

    Breaking up a large complex query into smaller chunks as #temp tables can help if SQL Server is creating large worktables (and bitmaps to support joins) in tempdb, which it's likely to do if there are different aggregation levels in your queries. Can you post the code? Better still, the actual plan.

    β€œWrite the query the simplest way. If through testing it becomes clear that the performance is inadequate, consider alternative query forms.” - Gail Shaw

    For fast, accurate and documented assistance in answering your questions, please read this article.
    Understanding and using APPLY, (I) and (II) Paul White
    Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden

  • Dear Sir,

    I have a query

    there is only one field 'datetime' in the table.I have to calculate shifts ,intime and outtime is needed.

    how to calculate intime and outtime?

    Thanks and Regards

    N.Ramachandran

  • ramachandran narayanan (9/24/2012)


    Dear Sir,

    I have a query

    there is only one field 'datetime' in the table.I have to calculate shifts ,intime and outtime is needed.

    how to calculate intime and outtime?

    Thanks and Regards

    N.Ramachandran

    Please do not hijack other peoples threads.

    Please start your own thread and please also follow the information in the second link of my signature on how to post code and data for the best help.

Viewing 9 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic. Login to reply