Solved

Get DB Maximum Capacity Query?

Posted on 2010-11-17
10
622 Views
Last Modified: 2012-05-10
I would like to run a query to determine the maximum DB size. This is for a Windows app that will be installed on various servers.
0
Comment
Question by:pointeman
10 Comments
 
LVL 21

Expert Comment

by:huslayer
ID: 34160655
DO you mean the maximum capacity for SQL server databases??
anyway Max size is "huge" far larger than anything you'll encounter (heck, just
buying the disks to reach the max size will break most budgets).

check this
http://msdn.microsoft.com/en-us/library/ms143432.aspx

or you can use this command to get the current DB size, but there's no such thing as maximim size, as databases are has auto growth, unless you turned it off !
USE DATABASE_NAME

GO

EXEC sp_spaceused

GO

Open in new window


hope that helps
0
 
LVL 75

Assisted Solution

by:Anthony Perkins
Anthony Perkins earned 83 total points
ID: 34160835
And it should be added that the MSDE/Express Editions have limitations of 2GB, 4GB and 10GB, depending on the version.
0
 
LVL 6

Assisted Solution

by:subhashpunia
subhashpunia earned 83 total points
ID: 34163092
For SQL Server 2008 the max size limit of database is 524,272 terabytes (TB).
0
 
LVL 69

Expert Comment

by:ScottPletcher
ID: 34164634
I would think he means the largest existing db on the instance.
0
 
LVL 21

Accepted Solution

by:
huslayer earned 84 total points
ID: 34165554
OK, then run that, to get list of DBs along with Size, in DESC order
use master

go

 select

        DATABASE_NAME   = db_name(s_mf.database_id),

        DATABASE_SIZE   = convert(int,

                                    case -- more than 2TB(maxint) worth of pages (by 8K each) can not fit an int...

                                    when convert(bigint, sum(s_mf.size)) >= 268435456

                                    then null

                                    else sum(s_mf.size)*8 -- Convert from 8192 byte pages to Kb

                                    end)

    from

        sys.master_files s_mf

    where

        s_mf.state = 0 and -- ONLINE

        has_dbaccess(db_name(s_mf.database_id)) = 1 -- Only look at databases to which we have access

    group by s_mf.database_id

order by DATABASE_SIZE desc

Open in new window


or just run

EXEC sp_databases
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 

Author Comment

by:pointeman
ID: 34165913
My idea is to simple check which SQL "version" is installed like so:

C#
string limit;

if(sqlVersion == "Express 2005") //or ver# ????????????
}
   limit = "4GB"
{
else if(sqlVersion == "Express 2008") // or ver# 10.50.1600.1
{
   limit = "8GB";
}
0
 

Author Comment

by:pointeman
ID: 34165933
Just found this, but unsure if it works for ALL Microsoft SQL versions:

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')

0
 
LVL 21

Expert Comment

by:huslayer
ID: 34166218
works for me in 2008 R2
0
 

Author Comment

by:pointeman
ID: 34172672
Because I only need to know if the DB server is 'Express' or not, the following simple query works fine so far.

         
Select SERVERPROPERTY('EngineEdition')

         int eEditon = System.Convert.ToInt32(cmd.ExecuteScalar());

         if (eEditon == 4)//http://msdn.microsoft.com/en-us/library/ms174396.aspx
               return true;

Open in new window

0
 

Author Closing Comment

by:pointeman
ID: 34301164
Thank you all........
0

Featured Post

Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

Join & Write a Comment

Suggested Solutions

Nowadays, some of developer are too much worried about data. Who is using data, who is updating it etc. etc. Because, data is more costlier in term of money and information. So security of data is focusing concern in days. Lets' understand the Au…
The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
Viewers will learn how to use the INSERT statement to insert data into their tables. It will also introduce the NULL statement, to show them what happens when no value is giving for any given column.
Viewers will learn how to use the SELECT statement in SQL and will be exposed to the many uses the SELECT statement has.

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

19 Experts available now in Live!

Get 1:1 Help Now