Why there is a Limitations on Index size (900 Bytes)?

  • Hi,

    Is it correct that all the pages, index/data/iam..etc pages does have the 8KB in size? if yes, why we have this limitation. if not what is the size of the each and every page by tyep. i.e., what is the size of the Index page? What is the max size of the Data Page?

    Thank you,

    🙂

  • Yes, all pages are 8kb in size.

    Limitation probably to keep the size of the index tree down. Wouldn't make any sense to have 8kb index key, the index tree would be incredibly deep and very inefficient.

    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 (8/1/2012)


    Yes, all pages are 8kb in size.

    Limitation probably to keep the size of the index tree down. Wouldn't make any sense to have 8kb index key, the index tree would be incredibly deep and very inefficient.

    What about the remaining free space? Around 7 Kb of space will be empty or will it contain any information?

    Is the statement is correct that you have provided?

    Thanks,

    🙂

  • it's not a one to one relationship. more than one index value will be able to fit in each 8k page;

    so an index will be made up of as many pages it needs to hold all it's data.

    i think you were thinking each index key goes on it's own page, and that's not how the space would be used.

    Lowell


    --help us help you! If you post a question, make sure you include a CREATE TABLE... statement and INSERT INTO... statement into that table to give the volunteers here representative data. with your description of the problem, we can provide a tested, verifiable solution to your question! asking the question the right way gets you a tested answer the fastest way possible!

  • SQL* (8/1/2012)


    GilaMonster (8/1/2012)


    Yes, all pages are 8kb in size.

    Limitation probably to keep the size of the index tree down. Wouldn't make any sense to have 8kb index key, the index tree would be incredibly deep and very inefficient.

    What about the remaining free space? Around 7 Kb of space will be empty or will it contain any information?

    What happens to a data page when you create a row of only 900 bytes? Same thing with an index page.

    SQL doesn't put one row per page, it fills the page with as many rows as possible. In the case of 900 byte rows, fitting 9 rows to the page.

    I think you may want to revise basic index architecture.

    http://www.sqlservercentral.com/articles/Indexing/68439/

    http://www.sqlservercentral.com/articles/Indexing/68563/

    http://www.sqlservercentral.com/articles/Indexing/68636/

    Is the statement is correct that you have provided?

    Err... yes.

    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
  • Thank you all (GilaMonster), for your answers.

    🙂

Viewing 6 posts - 1 through 5 (of 5 total)

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