Alert-tempdb freesapce?

  • Hi,

    I had received alert for Tempdb free sapce and reach the below threshold values.

    I want to know.. Tempdb location and drive having enough free space available. Tempdb reached 200 MB it will be automatically extent & allocating sapce if database autogrowth enable. so we don't want take action if more free sapce available in Disk.

    If it datafile size reached Full accoupied in disk and no free sapce available then we ill consider the take action.

    DATE/TIME:7/29/2013 11:11:47 AM

    DESCRIPTION:The SQL Server performance counter 'Free Space in tempdb (KB)' (instance 'N/A') of object 'SQLServer:Transactions' is now below the threshold of 200.00 (the current value is 192.00).

    Thanks

    ananda

  • use the below script to find drive free space and DB free space.

    use master

    CREATE TABLE #TMPFIXEDDRIVES (

    DRIVE CHAR(1),

    MBFREE INT)

    INSERT INTO #TMPFIXEDDRIVES

    EXEC xp_FIXEDDRIVES

    CREATE TABLE #TMPSPACEUSED (

    DBNAME VARCHAR(50),

    FILENME VARCHAR(50),

    SPACEUSED FLOAT)

    INSERT INTO #TMPSPACEUSED

    EXEC( 'sp_msforeachdb''use ?; Select ''''?'''' DBName, Name FileNme, fileproperty(Name,''''SpaceUsed'''') SpaceUsed from sysfiles''')

    SELECT C.DRIVE,

    CASE

    WHEN (C.MBFREE) > 1000 THEN CAST(CAST(((C.MBFREE) / 1024.0) AS DECIMAL(18,2)) AS VARCHAR(20)) + ' GB'

    ELSE CAST(CAST((C.MBFREE) AS DECIMAL(18,2)) AS VARCHAR(20)) + ' MB'

    END AS DISKSPACEFREE,

    A.NAME AS DATABASENAME,

    B.NAME AS FILENAME,

    CASE B.TYPE

    WHEN 0 THEN 'DATA'

    ELSE TYPE_DESC

    END AS FILETYPE,

    CASE

    WHEN (B.SIZE * 8 / 1024.0) > 1000 THEN CAST(CAST(((B.SIZE * 8 / 1024) / 1024.0) AS DECIMAL(18,2)) AS VARCHAR(20)) + ' GB'

    ELSE CAST(CAST((B.SIZE * 8 / 1024.0) AS DECIMAL(18,2)) AS VARCHAR(20)) + ' MB'

    END AS FILESIZE,

    CAST((B.SIZE * 8 / 1024.0) - (D.SPACEUSED / 128.0) AS DECIMAL(15,2)) SPACEFREE,

    B.PHYSICAL_NAME

    FROM SYS.DATABASES A

    JOIN SYS.MASTER_FILES B

    ON A.DATABASE_ID = B.DATABASE_ID

    JOIN #TMPFIXEDDRIVES C

    ON LEFT(B.PHYSICAL_NAME,1) = C.DRIVE

    JOIN #TMPSPACEUSED D

    ON A.NAME = D.DBNAME

    AND B.NAME = D.FILENME

    and A.NAME = 'tempdb'

    ORDER BY DATABASENAME asc

    DROP TABLE #TMPFIXEDDRIVES

    DROP TABLE #TMPSPACEUSED

    Regards
    Durai Nagarajan

Viewing 2 posts - 1 through 1 (of 1 total)

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