Este artigo descreve como estimar o tamanho de uma base de dados Microsoft SQL Server 2000 Windows CE Edition ou uma base de dados Microsoft SQL Server 2005 Mobile Edition. No entanto, não pode ser determinada essa estimativa com precisão real por causa das seguintes razões:
- O tamanho da tabela de sistema pode variar, especialmente quando utiliza o SQL Server CE ou SQL Server 2005 Mobile Edition sincronização.
- A estimativa não conta para o espaço utilizado pelas índices.
- Para uma questão de simplicidade, a estimativa assume o armazenamento de linhas contíguas (isto é, depois de compactar uma base de dados). SQL Server CE ou SQL Server 2005 Mobile Edition armazena linhas nas páginas de 4 KB e não dividir linhas entre páginas, excepto para tipos de dados texto e ntext . Uma vez que todas as páginas não são sempre preenchidas, existe algum espaço não utilizado em páginas individuais. Além disso, se uma página com linhas e algumas dessas linhas são eliminadas, o espaço para linhas eliminadas não é recuperado até que a base de dados for compactada. Se forem eliminadas todas as linhas numa página, a página é recuperada mais tarde.
- O comprimento de alguns tipos de dados pode variar consoante os dados que contêm, incluindo os tipos de dados nvarchar e ntext . Quando calcular o tamanho de uma coluna, a estimativa se baseia o tamanho máximo de coluna, não no tamanho real dos dados armazenados na coluna. Por exemplo, se uma coluna tiver um tipo de dados de nvarchar(50) e tem um valor de "Olá", o tamanho real da coluna é de 5 bytes, mas o tamanho estimado é 50 bytes.
Quando calcular o tamanho de uma tabela ou de uma base de dados, tenha em consideração as seguintes informações:
- Cada linha na tabela tem uma sobrecarga de 6 bytes.
- Cada coluna na tabela tem uma sobrecarga de 1 byte mais 1 byte para todos os 256 bytes de memória de linha.
- Tipos de dados de comprimento fixo têm uma sobrecarga de 1 byte de cada coluna e a sobrecarga é arredondada para o byte mais elevado seguinte.
- Cadeia de comprimento zero colunas ocupam 1 byte na linha.
- SQL Server CE ou SQL Server 2005 Mobile Edition armazena dados em formato Unicode. Se a cadeia de agrupamento que é utilizada para criar a base de dados for que um carácter de byte duplo Definir idioma (DBCS) (tal como kanji), o tamanho das colunas cadeia é duplicado dado que cada byte é guardado como 2 bytes. Se a cadeia de agrupamento que é utilizada para criar a base de dados é que um carácter de byte único Definir idioma (SBCS) (tal como inglês), o SQL Server CE remove o byte não utilizado à esquerda. Como resultado, SBCS agrupamento cadeias são estimadas como 1 byte para cada carácter.
- Se as tabelas de SQL Server CE ou as tabelas de SQL Server 2005 Mobile Edition são utilizadas na replicação de intercalação, existem três colunas de sistema para cada tabela.
- Se as tabelas de SQL Server CE ou as tabelas de SQL Server 2005 Mobile Edition participam em Remote Data Access (RDA), existem colunas de sistema 2 para cada tabela.
A tabela seguinte descreve os tipos de dados no SQL Server CE e o tamanho de armazenamento para cada tipo de dados.
Reduzir esta tabelaExpandir esta tabela
| Tipo de dados | Descrição |
|---|
| bigint | Inteiro (número inteiro) dados entre -2 ^ 63 (- 9,223,372,036,854,775,808) e 2 ^ 63-1 (9.223.372.036.854.775.807). O tamanho de armazenamento é de 8 bytes. |
| número inteiro | Inteiro (número inteiro) dados entre -2 ^ 31 (-2.147.483.648) e 2 ^ 31-1 (2.147.483.647). O tamanho de armazenamento é de 4 bytes. |
| smallint | Dados de número inteiro de ?32, 768 a 32.767. O tamanho de armazenamento é 2 bytes. |
| tinyint | Dados de número inteiro de 0 a 255. O tamanho de armazenamento é 1 byte. |
| bit | Dados de número inteiro com um valor 1 ou 0. |
| numérico (p, s) | Dados precisão fixa e escala numérica de -10 ^ 38 + 1 e 10 ^ 38? 1. O p Especifica a precisão e pode variar entre 1 e 38. Especifica a s dimensionar e pode variar entre 0 e p. numérico utiliza sempre bytes 19, independentemente da respectiva precisão e escala. |
| Money | Dados monetários valores entre -2 ^ 63 (- 922,337,203,685,477.5808) e 2 ^ 63-1 (922.337.203.685.477,5807), com uma precisão um dez milésimos de uma unidade monetária. O tamanho de armazenamento é de 8 bytes. |
| vírgula flutuante | Vírgula flutuante numerar o armazenamento de dados de - 1, 79E + 308 e 1, 79E + 308 tamanho é de 8 bytes. |
| real | Flutuante precisão números dados - 3, 40E + 38 e 3, 40E + 38. |
| data/hora | Dados de data e hora se situa entre 1 de Janeiro de 1753 e 31 de Dezembro de 9999, com uma precisão de três - centésimo um de um segundo ou 3,33 milissegundos. Os valores são arredondados para incrementos de.000,.003 ou.007 milissegundos. Armazenados como dois 4 bytes inteiros. Os primeiros 4 bytes armazenar o número de dias antes ou depois da data base (1 de Janeiro de 1900). A data base é a data de referência do sistema. Valores de data/hora anteriores ao se situa entre 1 de Janeiro de 1753 de e não são permitidos. Outros 4 bytes armazenar a hora do dia, o número de milissegundos após a meia-noite. Segundos tem um intervalo válido de 0 a 59. |
| character(n) nacional Sinónimo: nchar(n) | Dados de comprimento fixo Unicode com um comprimento máximo de 255 caracteres. O comprimento predefinido é 1. O tamanho de armazenamento, em bytes, é duas vezes o número de caracteres introduzido. |
| carácter nacional varying(n) Sinónimo: nvarchar (n) | Dados de comprimento variável Unicode com um comprimento de 1 a 255 caracteres. O comprimento predefinido é 1. O tamanho de armazenamento, em bytes, é duas vezes o número de caracteres introduzido. |
| ntext | Dados de comprimento variável Unicode com um comprimento máximo de (2 ^ 30-2) / 2 (536,870,911) caracteres. O tamanho de armazenamento, em bytes, é duas vezes o número de caracteres introduzido. |
| binary(n) | Dados binários de comprimento fixo com um comprimento máximo de bytes 510. O comprimento predefinido é 1. |
| varbinary(n) | Dados binários de comprimento variável com um comprimento máximo de bytes 510. O comprimento predefinido é 1. |
| imagem | Dados binários de comprimento variável com um comprimento máximo de 2 ^ 30-1 (1.073.741.823) bytes. |
| uniqueidentifier | UM GUID. Tamanho de armazenamento é 16 bytes. |
| IDENTITY [(s, i)] | Esta é uma propriedade de uma coluna de dados, não um tipo de dados distintos. Colunas de dados dos tipos de dados número inteiro podem ser utilizadas para colunas de identidade. Uma tabela pode ter apenas uma coluna de identidade. Uma base e incremento podem ser especificados e a coluna não pode ser actualizada. s (seed) = valor inicial (incremento) i = valor de incremento. |
| ROWGUIDCOL | Esta é uma propriedade de uma coluna de dados, não um tipo de dados distintos. Esta é uma coluna numa tabela é definida utilizando o tipo de dados uniqueidentifier . Uma tabela só pode ter uma coluna ROWGUIDCOL. |
Se estiver a utilizar o SQL Server 2005 Mobile Edition
Para mais informações sobre os tipos de dados no SQL Server 2005 Mobile Edition, consulte "Tipo de dados" tópico no SQL Server 2005 Books Online.
Nos seguintes cenários, o tamanho de uma tabela é estimado dependendo do tipo de dados da coluna, o número de linhas, o agrupamento e o tipo de sincronização.
Cenário 1
Neste cenário, o tamanho da tabela
myTableA1 é estimado. A tabela tem as seguintes características:
- A tabela myTableA1 tem 10.000 linhas.
- A tabela myTableA1 é criada com o agrupamento de inglês predefinido e a tabela não utiliza qualquer tipo de sincronização de SQL Server CE.
A tabela seguinte descreve o tipo de cada coluna na tabela
myTableA1 e o número de bytes ocupados por cada coluna.
Reduzir esta tabelaExpandir esta tabela
| Coluna | Tipo de dados | Tamanho em bytes | Bytes de custos gerais |
|---|
| 1 | nvarchar | 25 | 1 |
| 2 | nchar | 25 | 1 |
| 3 | bigint | 8 | 1 |
| 4 | data/hora | 8 | 1 |
| n/a | sobrecarga | n/a | 6 |
| Totais | | 66 | 10 |
O tamanho total de cada linha na tabela
myTableA1 é 76 (66 + 10) bytes. Uma vez que a tabela tem 10.000 linhas, o tamanho total da tabela
myTableA1 é 760,000 bytes (76 * 10, 000). Uma vez que o cálculo tem em consideração o tamanho máximo do tipo de dados
nvarchar , trata-se apenas uma estimativa do tamanho da tabela. O tamanho real da tabela poderão variar consoante o valor que é armazenado no tipo de dados
nvarchar .
Nota Se os valores de dados numa coluna devem variar consideravelmente, tem de utilizar o tipo de dados
nvarchar para reduzir o tamanho da base de dados.
Cenário 2
Neste cenário, o tamanho da tabela
myTableA2 é estimado. A tabela tem as seguintes características:
- A tabela myTableA2 tem 91 linhas.
- A tabela myTableA2 é criada com o agrupamento de inglês predefinido e a tabela é utilizada na replicação de intercalação.
A tabela seguinte descreve o tipo de cada coluna na tabela
myTableA2 e o número de bytes ocupados por cada coluna.
Reduzir esta tabelaExpandir esta tabela
| Coluna | Tipo de dados | Tamanho em bytes | Bytes de custos gerais |
|---|
| CódigoDoCliente | nvarchar | 5 | 1 |
| NomeDaEmpresa | nvarchar | 40 | 1 |
| ContactName | nvarchar | 30 | 1 |
| TítuloParaContacto | nvarchar | 30 | 1 |
| endereço | nvarchar | 60 | 1 |
| Cidade | nvarchar | 15 | 1 |
| região | nvarchar | 15 | 1 |
| código postal | nvarchar | 10 | 1 |
| país | nvarchar | 15 | 1 |
| telefone | nvarchar | 24 | 1 |
| fax | nvarchar | 24 | 1 |
| n/a | custos gerais de linha | n/a | 6 |
| n/a | sobrecarga de maior do que 256 bytes | n/a | 1 |
| n/a | número inteiro para replicação | 4 | 1 |
| n/a | UniqueIdentifier para replicação | 16 | 1 |
| n/a | binário | 24 | 1 |
| Totais | | 312 | 21 |
O tamanho total de cada linha da tabela
myTableA2 é 333 (312 + 21) bytes. Uma vez que a tabela tem 91 linhas, o tamanho total da tabela
myTableA2 é 30,303 bytes. Uma vez que o tamanho real dos valores de coluna de cadeia não for conhecido, este tamanho é apenas uma estimativa.
Cenário 3
Neste cenário, o tamanho da tabela
myTableA3 é estimado. A tabela participa RDA e tem as seguintes características:
- A tabela myTableA3 tem 91 linhas.
- A tabela myTableA3 é criada com o agrupamento de inglês predefinido e esta tabela tem colunas de chave primária, uma vez que são utilizados como parte de uma das colunas de sistema que é controlado para RDA.
A tabela seguinte descreve o tipo de cada coluna na tabela
myTableA3 e o número de bytes ocupados por cada coluna.
Reduzir esta tabelaExpandir esta tabela
| Coluna | Tipo de dados | Tamanho em bytes | Bytes de custos gerais |
|---|
| CódigoDoCliente (PK) | nvarchar | 5 | 1 |
| NomeDaEmpresa (PK) | nvarchar | 40 | 1 |
| ContactName | nvarchar | 30 | 1 |
| TítuloParaContacto | nvarchar | 30 | 1 |
| endereço | nvarchar | 60 | 1 |
| Cidade | nvarchar | 15 | 1 |
| região | nvarchar | 15 | 1 |
| código postal | nvarchar | 10 | 1 |
| país | nvarchar | 15 | 1 |
| telefone | nvarchar | 24 | 1 |
| fax | nvarchar | 24 | 1 |
| n/a | custos gerais de linha | n/a | 6 |
| n/a | sobrecarga de maior do que 256 bytes | n/a | 1 |
| n/a | número inteiro para RDA | 4 | 1 |
| n/a | binário para RDA (4 bytes para cada coluna em colunas de chave primária, mais bytes do valor da coluna se a chave primária for alterada; caso contrário, 1 byte) | 53/1 | |
| Totais | | 325/273 | 20 |
Se a chave primária for alterada, o tamanho total da tabela é 345 (325 + 20) bytes para cada linha. Uma vez que a tabela
myTableA3 tem 91 linhas, o tamanho da tabela é 31,395 bytes. Se a chave primária não for alterada, o tamanho total da tabela é 293 (273 + 20) bytes para cada linha. Uma vez que a tabela
myTableA3 tem 91 linhas, o tamanho da tabela é 26,663 bytes. Uma vez que o tamanho real dos valores de coluna de cadeia não for conhecido, trata-se apenas uma estimativa.