none
criar particionamento de tabela RRS feed

  • Pergunta

  • Boa tarde pessoal.
    Estava pesquisando no site do grande Nilton, que alias as matérias que ele publica são sensacional.
    http://www.mcdbabrasil.com.br/modules.php?name=News&file=article&sid=402

    Peguei alguns artigos sobre particionamento de tabela e tentei interpretar, fazendo o passo a passo

    /*CREATE DATABASE Particionamento

    ON PRIMARY

    ( NAME = db_data,

    FILENAME = 'e:\banco\banco.mdf',

    SIZE = 3MB),

    FILEGROUP bancopart1

    ( NAME = bancopart1_data,

    FILENAME = 'e:\banco\bancopart1.ndf',

    SIZE = 3MB),

    FILEGROUP bancopart2

    ( NAME = bancopart2_data,

    FILENAME = 'e:\banco\bancopart2.ndf',

    SIZE = 3MB),

    FILEGROUP bancopart3

    ( NAME = bancopart3_data,

    FILENAME = 'e:\banco\bancopart3.ndf',

    SIZE = 3MB)

    LOG ON

    ( NAME = bancopart_log,

    FILENAME = 'e:\banco\bancolog.ndf',

    SIZE = 2MB,

    FILEGROWTH = 10% );

    GO

    */
    --

    Abaixo temos os intervalos das Partições:

    Id da Partição

    Intervalo dos Valores

    1

    1 –infinito  a 100

    2

    101 a 200

    3

    201 a 300

    4

    301 a 400

    5

    401 a 500

    6

    501 a +infinito

    Este comando cria uma função de partição chamada de part_fun que é aplicado a um tipo de dados inteiro. A clausula RANGE LEFT especifica o ponto de limite definido para a partição à esquerda e para a direita usamos RANGE RIGHT. A clausula VALUES define os pontos de limite da partição. O SQL Server 2005 suporta todos os tipos de dados para o uso de particionamento, exceto TEXT, NTEXT, IMAGE, XML, TIMESTAMP, VARCHAR(MAX), NVARCHAR(MAX), VARBINARY(MAX).

    obs. Sinceramente eu não entendi o item acima
    CREATE PARTITION FUNCTION part_fun (int) AS
    RANGE LEFT FOR VALUES (100, 200, 300);
    GO

    -- Aqui que gera o erro quando eu tento criar
    CREATE
    PARTITION SCHEME particao_esquema AS
    PARTITION part_fun
    TO ([bancopart2], [bancopart2], [bancopart3])
    GO
    Msg 7707, Level 16, State 1, Line 1
    The associated partition function 'part_fun' generates more partitions than there are file groups mentioned in the scheme 'particao_esquema'.

    Como resolve isso..

    terça-feira, 10 de março de 2009 20:28

Todas as Respostas

  • Olá Wagner,

    Os artigos do Nilton são muito bons e o trabalho em manter o MCDBABrasil também é admirável.

    Quando você criou a função de particionamento, você especificou 3 valores (100, 200 e 300). Isso delimita 4 intervalos.

    1 - De - infinito até 100 (inclusive)
    2 - De 100 (exclusive) até 200 (inclusive)
    3 - De 200 (exclusive) até 300 (inclusive)
    4 - De 300 (exclusive) até + infinito

    Se você possui quatro intervalos e três FILEGROUPs, o mapeamento não pode ser feito. Você deve especificar mais um FILEGROUP para criar o Schema de particionamento (ou se preferir colocar todos em um FILEGROUP só).

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.spaces.live.com

    Será que LEFT OUTER JOIN e RIGHT OUTER JOIN são sinôminos de *= e =* ?
    http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!422.entry
    Classifique as respostas. O seu feedback é imprescindível
    quarta-feira, 11 de março de 2009 02:57