Qui 21 Ago 2008
1 Introdução
No SQL Server é possível criarmos dois tipos de arquivos de dados, o primário e o secundário, sendo o primeiro tipo mandatório. De acordo com a documentação é possível criarmos 32.766 arquivos secundários.
Uma boa prática é deixar o arquivo de dados primário para o catálogo do banco de dados e armazenar os dados e objetos, tais como, tabelas, procedimentos armazenados, visões, funções, etc., em arquivos secundários. Desta forma, podemos reduzir a contenção no acesso aos dados.
Grupos de arquivo são estruturas lógicas de agrupamento de arquivos que podem ser gerenciados como uma unidade. Assumindo a recomendação apresentada no parágrafo anterior como premissa, por conseqüência é uma boa prática definir o arquivo de grupo do arquivo secundário como padrão, pois nele serão armazenados os dados e os objetos do banco de dados.
Veja o exemplo abaixo:
--CRIA O BANCO DE DADOS PRINT 'Criando o banco de dados OrchestraTechnologyBlog...' CREATE DATABASE OrchestraTechnologyBlog ON PRIMARY ( NAME='OrchestraTechnologyBlog', FILENAME='C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataOrchestraTechnologyBlogCatalog.mdf', SIZE=100MB, MAXSIZE=300MB, FILEGROWTH=50MB ), FILEGROUP OrchestraTechnologyBlogFG1 ( NAME='OrchestraTechnologyBlogData1', FILENAME='C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataOrchestraTechnologyBlogData1.ndf', SIZE=500MB, MAXSIZE=UNLIMITED, FILEGROWTH=500MB ) LOG ON ( NAME='OrchestraTechnologyBlogLog', FILENAME='C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLDataOrchestraTechnologyBlogLog.ldf', SIZE=250MB, MAXSIZE=1GB, FILEGROWTH=15% ) GO PRINT '>> Procesimento finalizado' --DEFINE O FILEGROUP DE DADOS E OBJETOS DE BANCO COMO DEFAULT PRINT 'Definindo o FILEGROUP OrchestraTechnologyBlogFG1 como padrao...' ALTER DATABASE OrchestraTechnologyBlog MODIFY FILEGROUP OrchestraTechnologyBlogFG1 DEFAULT GO PRINT '>> Procedimento finalizado'
2 Pontos de atenção
• Caso a propriedade o SIZE não seja especificada com um valor para arquivos do tipo secundários ou para o arquivo de log, os mesmos serão criados com o tamanho de 1MB.
• O valor máximo que pode ser definido na propriedade MAXSIZE para arquivos do tipo primário é de 16TB e para arquivos de log de 2TB. É possível definir esta propriedade como UNLIMITED para que o tamanho do arquivo cresça até que o espaço em disco acabe.
• O número 0 no FILEGROWTH serve para indicar que o arquivo não cresça automaticamente quando for necessário.
3 Boas práticas
• A recomendação da Microsoft para as extensões dos arquivos primário, secundário e de log é: .mdf para o arquivo primário, .ndf para arquivos secundários e .ldf para arquivo de log.
• Baseado no plano de crescimento do banco de dados crie os arquivos com o maior tamanho possível para evitar a fragmentação, que por sua vez, exerce pressão no processo de I/O.
• Caso opte por utilizar o UNLIMITED no MAXSIZE, é vital ter um mecanismo para monitorar o espaço em disco que envie alertas quando o mesmo estiver acabando, como por exemplo, o SCOM 2007.