Compreendendo as páginas de dados no SQL Server 2008


A unidade fundamental de armazenamento de dados no SQL Server é a página. O espaço em disco alocado a um arquivo de dados (.mdf ou .ndf) em um banco de dados é logicamente dividido em páginas numeradas de forma contígua de 0 a n. As operações de E/S de disco são executadas no nível de página. Ou seja, o SQL Server lê ou grava páginas de dados inteiras.

As extensões são uma coleção de oito páginas fisicamente contíguas e são usadas para gerenciar as páginas de forma eficaz. Todas as páginas são armazenadas em extensões.

Páginas

No SQL Server, o tamanho de página é 8 KB. Isso significa que os bancos de dados SQL Server têm 128 páginas por megabyte. Cada página começa com um cabeçalho de 96 bytes usado para armazenar informações de sistema sobre a página. Essas informações incluem o número de página, o tipo de página, a quantidade de espaço livre na página e a ID de unidade de alocação do objeto que possui a página.

A tabela a seguir mostra os tipos de página usados nos arquivos de dados de um banco de dados SQL Server.

Tipo de página

Conteúdo

Dados

Linhas de dados com todos os dados, exceto dados text, ntext, image, nvarchar(max), varchar(max), varbinary(max) e xml, quando o texto na linha é definido como ON.

Índice

Entradas de índice.

Texto/Imagem

Tipos de dados de objeto grande:

  • Dados text, ntext, image, nvarchar(max), varchar(max), varbinary(max) e xml

Colunas de comprimento variável quando a linha de dados excede 8 KB:

  • varchar, nvarchar, varbinary e sql_variant

Global Allocation Map, Shared Global Allocation Map

Informações sobre alocação de extensões.

Page Free Space

Informações sobre alocação de página e espaço livre disponível em páginas.

Index Allocation Map

Informações sobre extensões usadas por uma tabela ou índice por unidade de alocação.

Bulk Changed Map

Informações sobre extensões modificadas pelas operações em massa desde a última instrução BACKUP LOG por unidade de alocação.

Differential Changed Map

Informações sobre extensões modificadas desde a última instrução BACKUP DATABASE por unidade de alocação.

Observação:

Os arquivos de log não contêm páginas; eles contêm uma série de registros de log.

As linhas de dados são colocadas em série na página, iniciando imediatamente após o cabeçalho. Uma tabela de deslocamento da linha tem início no final da página, e cada tabela de deslocamento da linha contém uma entrada para cada linha na página. Cada entrada registra a distância do primeiro byte da linha em relação ao início da página. As entradas na tabela de deslocamento da linha estão em seqüência inversa da seqüência das linhas na página.

Suporte à linha grande

As linhas não podem passar de uma página para outra, no entanto, partes da linha podem ser afastadas da página da linha para que a linha possa ser realmente muito grande. A quantidade máxima de dados e sobrecarga contida em uma única linha de uma página é 8.060 bytes (8 KB). Porém, isso não inclui os dados armazenados no tipo de página de Texto/Imagem. Essa restrição é consentida para tabelas que contêm colunas varchar, nvarchar, varbinary ou sql_variant. Quando o tamanho total da linha de todas as colunas fixas e variáveis em uma tabela exceder a limitação de 8.060 bytes, o SQL Server moverá uma ou mais colunas de comprimento variável dinamicamente para as páginas na unidade de alocação ROW_OVERFLOW_DATA, iniciando com a coluna com a maior largura. Isso é feito sempre que uma operação de inserção ou atualização aumenta o tamanho total da linha além do limite de 8.060 bytes. Quando uma coluna é movida para uma página na unidade de alocação ROW_OVERFLOW_DATA, é mantido um ponteiro de 24 bytes na página original da unidade de alocação IN_ROW_DATA. Se uma operação subseqüente reduzir o tamanho da linha, o SQL Server moverá as colunas dinamicamente para a página de dados original. Para obter mais informações, consulte Dados de estouro de linha excedendo 8 KB.

Extensões

As extensões são a unidade básica em que o espaço é gerenciado. Uma extensão tem oito páginas fisicamente contíguas ou 64 KB. Isso significa que os bancos de dados SQL Server têm 16 extensões por megabyte.

Para tornar a alocação de espaço eficiente, o SQL Server não aloca extensões inteiras a tabelas com quantidades pequenas de dados. O SQL Server tem dois tipos de extensões:

  • Extensões uniformes que pertencem a um único objeto; todas as oito páginas na extensão podem ser usadas apenas pelo objeto proprietário.
  • Extensões mistas compartilhadas por até oito objetos. Cada uma das oito páginas da extensão pode pertencer a um objeto diferente.

Uma nova tabela ou um índice geralmente são páginas alocadas de extensões mistas. Quando a tabela ou o índice cresce até adquirir oito páginas, é alternado para usar extensões uniformes para alocações subseqüentes. Se um índice for criado em uma tabela existente que tiver linhas suficientes para gerar oito páginas no índice, todas as alocações para o índice estarão em extensões uniformes.

Para maiores informações, acesse o Books On-Line.

Anúncios

Conheça o novo SQL Server Configuration Manager


O SQL Server Configuration Manager é uma ferramenta para administrar os serviços associados ao SQL Server, configurar os protocolos de rede usados pelo SQL Server e administrar a configuração de conectividade de rede de computadores cliente do SQL Server. O SQL Server Configuration Manager é um snap-in do Microsoft Management Console que está disponível no menu Iniciar ou pode ser adicionado a qualquer outra exibição do Management Console do Microsoft. O Console de Gerenciamento Microsoft (mmc.exe) usa o arquivo SQLServerManager10.msc na pasta System32 do Windows para abrir o SQL Server Configuration Manager.

O Server Configuration Manager e SQL Server Management Studio SQL Serverusam Instrumentação de Gerenciamento do Windows (WMI) para exibir e modificar algumas das propriedades de servidor. O WMI fornece uma forma unificada para fazer interface com as chamadas de API que gerenciam as operações de registro solicitadas pelas ferramentas do SQL Server e para fornecer um controle e manipulação melhorados sobre os serviços selecionados de SQL do componente de snap-in do Configuration Manager SQL Server.

Gerenciando serviços

Use o Configuration Manager do SQL Serverpara iniciar, pausar, reiniciar ou interromper os serviços, para exibir as propriedades de serviços ou para alterar as propriedades de serviços.

Alterando contas usadas pelos serviços

Gerencie os serviços do SQL Server usando o Configuration Manager do SQL Server.

Importante:

Sempre use as ferramentas do SQL Server como o SQL Server Configuration Manager para alterar a conta usada pelo SQL Server ou serviços do Agente SQL Server ou para alterar a senha da conta. Além de alterar o nome da conta, o Configuration Manager SQL Server efetua configurações adicionais como definição de permissões no registro do Windows de modo que a nova conta possa ler as definições do SQL Server. Outras ferramentas como o Gerenciador de Controle de Serviços do Windows podem alterar o nome da conta mas não alteram as definições vinculadas a ela. Se o serviço não puder acessar a parte do registro do SQL Server o serviço pode não iniciar corretamente.

Como benefício adicional, as senhas alteradas com o uso do Configuration Manager do SQL Server, SMO ou WMI passam a vigorar imediatamente sem reiniciar o serviço.

Gerenciar protocolos de rede do servidor & cliente

O Configuration Manager SQL Server permite configurar protocolos de rede de cliente e servidor e opções de conectividade. Depois que os protocolos corretos são habilitados, normalmente não é preciso alterar as conexões de rede de servidor. No entanto, você pode usar o Configuration Manager SQL Server se precisar reconfigurar as conexões do servidor de modo que o SQL Server escute um determinado protocolo de rede, porta ou pipe. Para obter mais informações sobre como habilitar protocolos, consulte Como habilitar ou desabilitar um protocolo de rede de servidor (SQL Server Configuration Manager). Para obter informações sobre como habilitar acesso a protocolos por um firewall, consulte Configurando o Firewall do Windows para permitir acesso ao SQL Server.

O Configuration Manager SQL Server permite que você gerencie os protocolos de rede de servidor e cliente, incluindo o recurso de impor a criptografia do protocolo, exibir as propriedades do alias ou habilitar/desabilitar um protocolo.

O Configuration Manager SQL Server permite que você crie ou remova um alias, alterando a ordem em que os protocolos são usados, ou visualize as propriedades do alias de um servidor, incluindo:

  • Alias de Servidor –– O alias de servidor usado para o computador ao qual o cliente está conectando.
  • Protocolo –– O protocolo de rede usado para a entrada de configuração.
  • Parâmetros de Conexão –– Os parâmetros associados à conexão encaminham a configuração de protocolo de rede.

O Configuration Manager SQL Server também permite que você visualize as informações sobre as instâncias de cluster de failover, apesar do Administrador de Cluster dever ser usado para algumas ações como iniciar e interromper os serviços.

Protocolos de rede disponíveis

O SQL Server oferece suporte a protocolos de Memória Compartilhada, TCP/IP, Pipes Nomeados e VIA. Para obter informações sobre como escolher um protocolo de rede, consulte Escolhendo um protocolo de rede. O SQL Server não oferece suporte para o Protocolo de Pacote Seqüenciado Banyan VINES (SPP), Multiprotocol, AppleTalk.

 

Para maiores informações sobre o Configuration Manager, acesse o Books On-Line.

Retornando o número de linhas processadas na SP_ExecuteSQL


A dica de hoje tem o objetivo de demonstrar como obter o número de linhas processadas por um instrução executada através da system stored procedure, SP_ExecuteSQL.
 
Veja abaixo o código de exemplo:
 
DECLARE @TableName VARCHAR(100)
DECLARE @varSQL  NVARCHAR(4000)
DECLARE @iCount  INT
 
SET  @TableName = ‘TimeZones’
SET  @varSQL = ‘SELECT TOP 1 @iCountOut = rows FROM sys.partitions where object_id = ‘ + CAST(object_id(@TableName) AS VARCHAR(100))
 
EXECUTE sp_ExecuteSQL @varSQL, N’@iCountOut INT OUTPUT’, @iCountOut = @iCount OUTPUT
SELECT @iCount
 
Fonte: SQLServerCentral.com, www.sqlservercentral.com
 

Novidades do Integration Services no SQL Server 2008


Microsoft O Microsoft Integration Services é uma plataforma para criar integração de dados em nível corporativo e soluções de transformações de dados. Use o Integration Services para solucionar problemas empresariais complexos copiando ou fazendo o download de arquivos, enviando mensagens de e-mail em resposta a eventos, atualizando data warehouse, fazendo a limpeza e mineração de dados e gerenciando objetos e dados do SQL Server. Os pacotes podem funcionar sozinhos ou junto com outros pacotes para tratar das necessidades empresariais complexas. O Integration Services pode extrair e transformar dados a partir de uma ampla variedade de fontes como arquivos de dados XML, arquivos simples e fontes de dados relacionais e transferir dados para um ou mais destinos.

O Integration Services inclui um conjunto completo de tarefas e transformações internas; ferramentas para construção de pacotes; e o serviço do Integration Services para execução e gerenciamento de pacotes. Você pode usar as ferramentas gráficas do Integration Services para criar soluções sem gravar uma única linha de código ou pode programar o modelo de objeto extensivo do Integration Services para criar programaticamente pacotes e tarefas personalizadas de código bem como outros objetos de pacote.

Novos tipos de dados de data e hora

Os novos tipos de dados de data e hora a seguir estão disponíveis no Integration Services:

  • DT_DBTIME2
  • DT_DBTIMESTAMP2
  • DT_DBTIMESTAMPOFFSET

Esses novos tipos de dados do Integration Services fornecem os seguintes benefícios:

  • Dão suporte a uma escala maior para segundos fracionários.
  • Dão suporte à precisão definida pelo usuário.
  • Dão suporte ao deslocamento de fuso horário.

Vários elementos de fluxo de controle e fluxo de dados dão suporte a esses novos tipos de dados. Para obter mais informações, consulte Elementos de Fluxo de Controle e Elementos de fluxo de dados.

Você pode converter os novos tipos de dados em outros tipos de dados de data do Integration Services usando expressões, a transformação Conversão de Dados e a transformação Coluna Derivada. Também é possível usar expressões para executar comparações entre os novos tipos de dados. Para obter mais informações, consulte Tipos de dados do Integration Services e Cast (SSIS).

Instruções SQL aprimoradas

O Integration Services inclui os seguintes aprimoramentos às instruções de Transact-SQL:

  • Executar várias operações DML (linguagem de manipulação de dados)   O Transact-SQL dá suporte ao uso de uma operação MERGE em uma instrução SQL. A operação de MERGE permite expressar várias operações INSERT, UPDATE e DELETE em uma única instrução relativa a uma tabela de destino especificada. A tabela de destino é baseada em condições de junção com uma tabela de origem. Para obter mais informações, consulte Inserindo, atualizando e excluindo dados com MERGE e Usando MERGE nos pacotes do Integration Services.
  • Recuperar dados sobre mudanças em uma fonte de dados    A operação INSERT dá suporte à inserção de filas em uma tabela de destino, que são retornadas pela cláusula OUTPUT de uma operação INSERT, UPDATE, DELETE ou MERGE. Para obter mais informações, consulte INSERT (Transact-SQL).
  • Melhorar o desempenho da operação de carregamento em massa quando os dados são classificados de acordo com o índice clusterizado na tabela   A opção BULK da função OPENROWSET dá suporte ao argumento ORDER, que especifica como os dados no arquivo de dados já estão classificados. O argumento ORDER não efetua uma operação de classificação nos dados de texto. Esse argumento serve como uma dica para o Mecanismo de Banco de Dados do SQL Server informando que os dados já estão pré-classificados no arquivo. Se os dados não estiverem classificados, o Mecanismo de Banco de Dados retornará um erro.

    A função OPENROWSET permite usar o OLE DB para acessar dados remotos. Para obter mais informações, consulte OPENROWSET (Transact-SQL).

Para maiores informações sobre o Integration Services no SQL Server 2008, acesse o Books On-Line.

Webcast da semana – SQL Server 2008 Filestream


Luciano Moreira, apresenta mais um webCast sobre o SQL Server 2008!!!!

Webcast: Filestream no SQL Server 2008 – Arquitetura e Utilização
Descrição: Nesse webcast iremos conhecer o recurso de Filestream do SQL Server 2008, que permite ao desenvolvedor/DBA trabalhar com tipos binários no SQL Server que será integrado de forma transparente com o sistema de arquivos do Windows. Será abordado na sessão: a necessidade do uso do Filestream, arquitetura detalhada, integração com o Windows, gerenciamento de transações com o filestream, segurança e a utilização do recurso em aplicações.
Palestrante: Luciano Caixeta Moreira
Data/Hora: quarta-feira, 24 de setembro de 2008 12:00 Brasília
URL: https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032390078&EventCategory=4&culture=pt-BR&CountryCode=BR

Fonte: Microsoft MSDN Brasil, www.msdnbrasil.com.br

 

Criando um backup database compactado no SQL Server 2008


A dica de hoje tem o objetivo de demonstrar e destacar uma das mais anunciadas novidades presentes no Microsoft SQL Server 2008, a possibilidade de realizar um banco de dados fazendo a compactação do arquivo durante a realização do backup.
 
Veja abaixo o código de exemplo:

Use Master
Go
BACKUP DATABASE AdventureWorks 
TO DISK='Z:SQLServerBackupsAdvWorksData.bak' WITH COMPRESSION
Para maiores informações sobre as novidades do SQL Server 2008 e também sobre backup, acesse o Books On-Line.

Funcionalidades do Database Engine descontinuados no SQL Server 2008.


A tabela abaixo relaciona as funcionalidades existentes no SQL Server 2000 e 2005 que foram retiradas ou substituídas no Microsoft SQL Server 2008.

 
Categoria

Recurso descontinuado

Substituição

Aliases

sp_addalias

Substitua os aliases com uma combinação de contas do usuário e funções de banco de dados. Para obter mais informações, consulte CREATE USER (Transact-SQL) e CREATE ROLE (Transact-SQL). Remova os aliases nos bancos de dados atualizados usando sp_dropalias.

APIs

API dos servidores registrados

Substituída por uma nova API de servidores registrados que oferece suporte a novos recursos do SQL Server 2008.

Backup e restauração

Instrução DUMP

BACKUP

Backup e restauração

Instrução LOAD

RESTORE

Backup e restauração

BACKUP LOG WITH NO_LOG

Nenhuma. O log de transações é truncado automaticamente quando o banco de dados está usando o modelo de recuperação simples. Se você precisar remover a cadeia de backup do log de um banco de dados, alterne para o modelo de recuperação simples.

Backup e restauração

BACKUP LOG WITH TRUNCATE_ONLY

Nenhuma. O log de transações é truncado automaticamente quando o banco de dados está usando o modelo de recuperação simples. Se você precisar remover a cadeia de backup do log de um banco de dados, alterne para o modelo de recuperação simples.

Backup e restauração

BACKUP TRANSACTION

BACKUP LOG

Nível de compatibilidade

Níveis de compatibilidade 60, 65 e 70

Os bancos de dados devem ser definidos com o nível de compatibilidade de pelo menos 80.

DBCC

DBCC CONCURRENCYVIOLATION

Nenhuma

Grupos

sp_addgroup

Use funções.

Grupos

sp_changegroup

Use funções.

Grupos

sp_dropgroup

Use funções.

Grupos

sp_helpgroup

Use funções.

Bancos de dados de exemplo

Northwind e pubs

Use o AdventureWorks. O Northwind e pubs estão disponíveis como downloads ou podem ser copiados de uma instalação anterior do SQL Server.

Para obter mais informações, consulte Bancos de dados de exemplo AdventureWorks.

Ferramentas

Ferramenta Configuração da Área de Superfície

A Ferramenta Configuração da Área de Superfície foi descontinuada para o SQL Server 2008. Para obter mais informações, consulte Compatibilidade com versões anteriores.

Assistente da Web

sp_makewebtask

sp_dropwebtask

sp_runwebtask

sp_enumcodepages

É recomendável usar o SQL Server Reporting Services.

 
Fonte: Microsoft Books On-Line SQL Server 2008, Português.