sábado, 28 de agosto de 2010

Planning Databases

Um banco de SQLServer possui 2 tipos de arquivos, os .mdf e os .ldf...
.mdf --> Master data file
.ndf --> Second data file
.ldf   --> log data file

Colocar sempre os arquivos em drivers separados para melhorar performace e se perder um conseguimos recuperar por outro.

--Criar as pastas DATA_FILES e LOG_FILES no drive F.

-- Criando um banco de dados com todas as propriedades
CREATE DATABASE CAP

ON PRIMARY (NAME = 'Cap_Data_01',
                           FILENAME = 'F:\DATA_FILES\Cap_Data_01.mdf',
                           SIZE = 5MB,   --(PADRÃO MB)
                           MAXSIZE = UNLIMITED,
                           FILEGROWTH = 10%),


FILEGROUP SEGUNDO DEFAULT 
                        (NAME = 'Cap_Data_02',
                         FILENAME = 'F:\DATA_FILES\Cap_Data_02.ndf',
                         SIZE = 5MB,
                         MAXSIZE = UNLIMITED,
                         FILEGROWTH = 10%),

FILEGROUP TERCEIRO
                      (NAME = 'Cap_Data_03',
                       FILENAME = 'F:\DATA_FILES\Cap_Data_03.ndf',
                       SIZE = 5MB,
                       MAXSIZE = 500MB,
                       FILEGROWTH = 5%)


LOG ON
             (NAME = 'Cap_Log',
              FILENAME = 'F:\LOG_FILES\Cap_Log.ldf',
              SIZE = 1MB,
              MAXSIZE = 1GB,
              FILEGROWTH = 1MB)


GO


sp_helpdb  --> mostra informações sobre o banco de dados criado
Ex: sp_helpdb CAP

Como boa prática, é bom fazer uma estatística anual do crescimento do banco para evitar o autoextend muitas vezes por ano... E colocar o filegrowth em porcentagem!

para aumentar o tamanho de um datafile, basta executar o comando abaixo.
ALTER DATABASE CAP

MODIFY FILE
(NAME = 'Cap_Data_01',
SIZE = 10MB)
-- Reduzindo o LOG após importar dados

USE CAP
GO
DBCC SHRINKFILE ('Cap_Log', 1)
GO

Outra boa prática é validar sempre seu log para deixá-lo menor... com o shrink
Arquivos de LOG não são colocados em FILEGROUPS
Não conseguimos mudar os datafiles de FILEGROUPS
Mas conseguimos mudar os objetos entre os FILEGROUPS.. As vezes por motivos de performace!
Se um FILEGROUP tem mais de um datafile, ao criar/exportar algum objeto o FILEGROUP grava as informações nos dois datafiles fazendo um balanceamento.
Temos a possibilidade de criar uma tablespace como readonly para que ngm realize alterações.

FILEGROUP é ineressante para fazermos tabelas particionadas!
O legal de criar um FILEGROUP é criar 2 ou mais datafiles em drivers diferentes em questão de performace.
Se tivermos tabelas bastante acessadas, seria interessante coloca-las em filegroups diferentes em discos diferentes para utilização de IO de discos.

BIZU: Uma ótima ferramenta para gerar backups, chama-se LiteSpeed



Nenhum comentário:

Postar um comentário