SIGN UP MEMBER LOGIN:    
ARTICLE

Database Files in SQL Server 2005

Posted by Vijaya Kadiyala Articles | SQL Server 2012 July 10, 2008
In this article, I would like to give you an overview of Database files in SQL Server 2005.
Reader Level:

Overview

In the Database world the main important factor is how well you create your database. This includes the different database files like data file which is used to store the data and transaction log file which is used to store all the transaction information.

In this article, I would like to give you an overview of Database files in SQL Server.

Database Files

In SQL Server 2005, a new user database is really a copy of the Model database. Everything in the Model database will show up in your newly created database. Once the copy of the database has been made, it expands to the requested size. When you create a database in SQL Server 2005, you must specify at least one file to store the data and hold your system tables and another file to hold the transaction log.

Databases can comprise up to three file types. Primary data files have a default extension of .mdf. If you create a database that spans multiple data files, then secondary data files are used, which have a default filename extension of .ndf. The transaction log is stored in one or more files, with a default .ldf extension. Additional transaction log files, however, don’t change their extensions. You should remember several important facts about your data and log files:

1. It is good to create the data and log files on a storage area network.

2. Only one database is allowed per data file, but a single database can span multiple data files.

3. Transaction logs must reside in their own file; they can also span multiple log files. i.e. you can have multiple transaction file file single database.

4. SQL Server fills the database files in a filegroup proportionally. This means if you have two data files, one with 200MB free and one with 400MB free, SQL Server will allocate one extent from the first file and two extents from the second file when writing data. In this way, you can eliminate hot spots and reduce contention in high-volume environments.

Transaction log files are not filled proportionally; instead, they fill each log file to capacity before continuing to the next log file.

When you are creating a database, please don’t specify the size of a transaction log, the transaction log will be resized to 25 percent of the size of your data files.

It's a good practice to place your transaction logs on separate physical hard drives. In this way, you can recover your data up to the second in the event of a hardware failure.


The big question now is why do we need secondary database files when I can store data in primary database files? Well this has certain advantages and disadvantages. The main disadvantage of multiple database files is administration. You need to remember these different files, their locations, and their use. The main advantage is that you can place these files on separate physical hard disks, avoiding the creation of hot spots and thereby improving performance. When you use database files, you can back up individual database files rather than the whole database in one session.

When you create a database, you are allocating hard disk space for both the data and the transaction log. You can store your data files using a variety of methods, depending on your hardware and software.

Login to add your contents and source code to this article
share this article :
post comment
 

You said that
"Transaction log files are not filled proportionally; instead, they fill each log file to capacity before continuing to the next log file."

Well , i manage a sql 2000, and have a database with 3 log files equal size and i note that they are being filled equaly and when one grows the others do it too.

It's a case of difference between sql 2000 and 2005, perhaps?

Thanks in advance

M.Goebbels

Posted by Martin Goebbels Jun 11, 2010

It's nice posting. I'm working with SQL 2005. My modellog.ldf file is getting bigger and bigger. it's a model db so no transaction is done here. Then why it's happening and how can I get rid of it ? Now it's size is more that 20 GB (it's mentioned in the log file property and I noticed it just now when I have the prob). Can I reduce my modelg.ldf file size and will it do any herm to my main db?

Thanks in advance.

Posted by Maksuda Hossain Jul 14, 2009
Become a Sponsor
PREMIUM SPONSORS
  • Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites - Click Here!
    Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Team Foundation Server Hosting
Become a Sponsor