The Basics of Sizing a SQL Server Database

  • Sorry I could not learn much from this article. If atleast he could discuss some features of the products he mentioned in the article elaborately, then it would have been fine.

  • This was a year old??? SEVEN years more like !!!!!! It arrived in my inbox 8/1/08 !!!

    Nice article, informative - if you wish to purchase third-party software (though a good point made concerning how easy it is to miscalculate the true size of databases by hand).

    I would ask though: Where was the monitoring after deployment part of the article?

    The opening paragraph appeared to promise a little more than the content delivered, but still a very interesting read, though there was no attached SProc to download/view.


    Tony (Dev)

  • Like many others have already mentioned: nice try, no substance, 7 years old. When you publish an article, please check your grammar. A few mistakes here and there for non-native speakers are OK. For a native speaker who teaches others you ought to do better.

    Keep trying. Thanks for the effort you put into it 7 years ago.

  • We re-run older, popular articles at times. With nearly 200,000 people joining the site in the last year, it's not "old" to them, it's likely the first time they saw it.

  • Steve Jones - Editor (8/1/2008)


    We re-run older, popular articles at times. With nearly 200,000 people joining the site in the last year, it's not "old" to them, it's likely the first time they saw it.

    having read many posts from those who commented with 'disappointment' or harsher responses, my take is that this is a very good 'lite' article to help newbies get their feet wet. No newbies seemed to comment, which is consistent with newbie behavior - after you read all the 'old-timer' comments, it can get intimidating, unless you have a pressing need or specific question.

    I'm disappointed that the link at the end seems to point to Brian's personal bookmarks, rather than to the actual stored procedure source.

    To Steve Jones: If this is a 'rerun' of an old article, was it updated or simply reprinted? Some of the content could have been revised since then, OR perhaps the links for the subsequent articles for those of us who can't wait for the sequel articles?

    I was not aware of some of these features being available in ERwin in 2001 - again, the dating is confusing if the article has been revised and brought current.

  • I appreciated the article and it is new to me. Why did I like it? Because so far, my databases are so small relatively that stressing over database size is not an issue. However, if I should need to work on a database with large growth potential in the future, I will have to consider this issue.

    I have been using ERwin for years, but I didn't know about the size estimate capability. This article was at the perfect level for what I need right now: Just to know about the capability in the product I use and a pointer to another product that actually works. I can run with that information in the future if I need it. I didn't need an in-depth article. In fact, an in-depth article at this point would have been counter productive for my situation.

    Is there a place on this site for high-level articles? I would argue "yes". (On the other hand, if I had been looking for more in-depth info right now, I am sure I would have found this article disappointing too. So, I can understand other people's feelings. I don't know if there is a good answer to this issue or not. You can't meet everyone's needs all the time. All you can do is define standards for what is acceptable for this site.)

  • For many years I worked as a Capacity Planning Consultant, first for Digital, then later on my own. Capacity planning is a lost art now, but was pretty big then. I was fortunate both to be a delivery consultant but also to have the opportunity to participate in the development of both very advanced modeling tools based on QNA (Queuing Network Analysis), and in the creation and refinement of a very sophisticated methodology for structuring and delivering them.

    I really should say "methodologies" though because Capacity Planning was really just one of a group of different types of studies based on systems performance and sizing along with a family of related methodologies to consistently deliver them with reliable results. The difference between these studies started with the question "What question will this study answer?" The answer to that question would in turn determine the type of study needed.

    For instance a Capacity Plan answered the question "What configuration changes/expansions will we have to make in the (X) years and when will we have to make them in order achieve and/or maintain specific performance levels across the critical services on this system/server?" That's a mouthful and it reflects the fact that a Capacity Plan one of the highest level services in the discipline. "New System Sizing" on the other hand answered the question "What configuration for a new dedicated system/server do we need to host this new application/service at a specific performance level?"

    A example of a tamer service might be "Annual Growth Sizing" which would answer the question "What configuration will I need a year from today to maintain the same performance level?" And at the lowest level would be "Storage Sizing" which simply answers the question "How much disk space will we need X month from now."

    In fact Storage Sizing is so straight-forward that virtually no one pays someone else to do it, but rather it is typically incorporated into the planning and budgeting process. However, it too can share the same core steps that all of the "Present/Future" methodologies in this family share in the abstract:

    0. Qualify: What type of question/study is this?

    1. Identification: Formally state the problem or question and goals and objectives.

    2. Baseline: data collection to quantify the current state of resources and their usage.

    3. Forecasting: determine how usage of, or demand for the resources will change in the future.

    4. Solutions: Project how forecasted changes will affect the resources and determine what solutions can be implemented.

    5. Application: Present and apply the results.

    Exactly how steps 2 through 4 are accomplished is determined by the type of study and in turn determines the quality of the study. Even with the simplest studies, there is usually more than one way to do a step.

    For instance with Storage Sizing, step 3, Forecasting future needs can be done either through trending or through business planning. Trending is the process of simply looking at historical growth trends and applying that same growth to the future. Business planning, on the other hand, is the process of taking the results of the organizations planning process, including predicted staffing, new projects and initiatives and expected roll-outs, as well as the impact of specific changes planned, and feeding that into the forecasting prediction. Trending is easier and more straight-forward, but is much more subject to "suprises".

    Business planning is more difficult and time-consuming and many DBA's and server managers are unfamiliar with it, however it is much more accurate and powerful, especially organizationally and career-wise. First because it takes information from and returns information to executives in terms that they both understand and accept. And secondly because it specifically leverages the organization's own planning process back on itself. Because of this, it is much easier to justify new acquisitions and purchases because you can relate it directly to prior business plans and their financial justifications. Likewise, almost all failures of your planning process can be traced back to failures in the inputs provided to you by the other managers and executives. Garbage-in, garbage-out.

    [font="Times New Roman"]-- RBarryYoung[/font], [font="Times New Roman"] (302)375-0451[/font] blog: MovingSQL.com, Twitter: @RBarryYoung[font="Arial Black"]
    Proactive Performance Solutions, Inc.
    [/font]
    [font="Verdana"] "Performance is our middle name."[/font]

  • I wonder why the article is dated 2001/07/25. Is it that old...? Any ways, somewhat information for me (at least) about Datatect 1.6. Will use it to see what it can do for me...

    Atif Sheikh

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Sometimes, winning is not an issue but trying.
    You can check my BLOG
    [font="Arial Black"]here[/font][/url][/right]

  • recycling a 2001 article for SQL2000 is unlikely to be optimal for 2008 (SQL2005 going SQL2008)

    - come on guys, come out of your cave there's been interim life these 7 years you know !

    firstly the usp_databases.txt in author's "Resources:" is ugly with cursors and dynamic-SQL

    - better solution (for SQL200x) might have been

    if object_id('tempdb..#databases') is not NULL drop table #databases

    create table #databases

    (DATABASE_NAMEsysnameNOT NULLprimary key clustered

    ,datsizefloatNOT NULL

    ,logsizefloatNOT NULL

    )

    insert into #databases

    exec sp_MSforeachdb 'use[?];

    select DATABASE_NAME=db_name()

    ,datsize=sum(case when (status & 0x40)=0 then /128. else 0. end)

    ,logsize=sum(case when (status & 0x40)=0 then 0. else /128. end)

    from sysfiles '

    select *,RUN_DT=getdate() from #databases

    but here's another for SQL2005/SQL2008

    -- show sizes in MB (not 8192 byte pages) and keep as float for accurate trending later

    select DATABASE_NAME=isnull(D.DATABASE_NAME, L.DATABASE_NAME)

    , datsize, logsize, ftssize, RUN_DT=getdate()

    from

    ( select DATABASE_NAME=db_name(database_id), sum()/128. as datsize

    from sys.master_files

    where [type]=0-- ROWS

    group by database_id

    ) D

    full outer join

    (select DATABASE_NAME=db_name(database_id), sum()/128. as logsize

    from sys.master_files

    where [type]=1-- LOG

    and has_dbaccess(db_name(database_id)) = 1 -- only accessible databases

    group by database_id

    ) L on L.DATABASE_NAME=D.DATABASE_NAME

    left join

    (select DATABASE_NAME=db_name(database_id), sum()/128. as ftssize

    from sys.master_files

    where [type]=4-- FULLTEXT

    and has_dbaccess(db_name(database_id)) = 1 -- only accessible databases

    group by database_id

    ) T on T.DATABASE_NAME=D.DATABASE_NAME

    order by DATABASE_NAME

    HTH

    Dick

    PS if you get Smileys in the code replace by closing parenthesis - preview mashes space)space!

  • dbaker (8/4/2008)


    firstly the usp_databases.txt in author's "Resources:" is ugly with cursors and dynamic-SQL

    - better solution (for SQL200x) might have been

    ...

    exec sp_MSforeachdb 'use[?];

    select DATABASE_NAME=db_name()

    ,datsize=sum(case when (status & 0x40)=0 then /128. else 0. end)

    ,logsize=sum(case when (status & 0x40)=0 then 0. else /128. end)

    from sysfiles '

    select *,RUN_DT=getdate() from #databases

    ...

    FYI: "sp_MSforeachdb" is an ugly cursor also, and undocumented at that.

    [font="Times New Roman"]-- RBarryYoung[/font], [font="Times New Roman"] (302)375-0451[/font] blog: MovingSQL.com, Twitter: @RBarryYoung[font="Arial Black"]
    Proactive Performance Solutions, Inc.
    [/font]
    [font="Verdana"] "Performance is our middle name."[/font]

  • true, is undocumented in distributed BOL content ["offline"]

    however the docviewer online search documents it 2001/5/31 by a certain Brian Knight

    what a pity his simplistic article on db sizing [2001/7/25] failed to employ it

    - criticism smacks of double standards methinks

    my defence [for using it despite its inevitable internal evil cursor] is

    convenience

    because its there [well for last few versions anyway]

    widely used by other DBAs and MS practitioners (for similar reasons I guess so has lotsa fans)

    but you are quite right to point out to newbies that it might go away on some future SQL version!

    Dick

  • dbaker (8/4/2008)


    - criticism smacks of double standards methinks

    Please, explain?

    [font="Times New Roman"]-- RBarryYoung[/font], [font="Times New Roman"] (302)375-0451[/font] blog: MovingSQL.com, Twitter: @RBarryYoung[font="Arial Black"]
    Proactive Performance Solutions, Inc.
    [/font]
    [font="Verdana"] "Performance is our middle name."[/font]

  • dbaker (8/4/2008)


    - better solution (for SQL200x) might have been ... PS if you get Smileys in the code replace by closing parenthesis - preview mashes space)space!

    Using the Code IFCode shortcuts takes care of the smileys. 🙂

    -----
    [font="Arial"]Knowledge is of two kinds. We know a subject ourselves or we know where we can find information upon it. --Samuel Johnson[/font]

  • simply that either we should either encourage usage of undocumented features [with due warnings] or not [like pregnancy, there's no middle ground]

    but no matter, I wasn't popping at you 😉 and I liked your well-written article:)

    - you're right, Capacity Planning is ill-understood, and I don't think MS SCOM helps much

    Dick

    PS BTW you're not the only DEC-cie . a sad waste of opportunity when it went down, but you can't keep the good-guys down for long

  • RBarryYoung: Thanks so much for your information. I had no idea that there was such a discipline around this issue. Very interesting stuff and good points. Thanks. - JJ

Viewing 15 posts - 16 through 30 (of 40 total)

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