Etapa 3: otimizar uma tabela
Selecionar um tipo de armazenamento
As tabelas de exemplo usadas nessa prática são típicas tabelas TPC-DS de várias colunas, nas quais muitas consultas de análise estatística são realizadas. Portanto, o modo de armazenamento de coluna é recomendado.
1
|
WITH (ORIENTATION = column) |
Selecionar um nível de compressão
Nenhuma taxa de compressão é especificada em Passo 1: criar uma tabela inicial e carregar dados de amostra, e a baixa taxa de compressão é selecionada por GaussDB(DWS) por padrão. Especifique COMPRESSION para MIDDLE e compare o resultado com aquele quando COMPRESSION é definido como LOW.
Segue-se um exemplo de selecção de um modo de armazenamento e a taxa de compressão MIDDLE para uma tabela.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
CREATE TABLE store_sales ( ss_sold_date_sk integer , ss_sold_time_sk integer , ss_item_sk integer not null, ss_customer_sk integer , ss_cdemo_sk integer , ss_hdemo_sk integer , ss_addr_sk integer , ss_store_sk integer , ss_promo_sk integer , ss_ticket_number bigint not null, ss_quantity integer , ss_wholesale_cost decimal(7,2) , ss_list_price decimal(7,2) , ss_sales_price decimal(7,2) , ss_ext_discount_amt decimal(7,2) , ss_ext_sales_price decimal(7,2) , ss_ext_wholesale_cost decimal(7,2) , ss_ext_list_price decimal(7,2) , ss_ext_tax decimal(7,2) , ss_coupon_amt decimal(7,2) , ss_net_paid decimal(7,2) , ss_net_paid_inc_tax decimal(7,2) , ss_net_profit decimal(7,2) ) WITH (ORIENTATION = column,COMPRESSION=middle); |
Selecionar um modo de distribuição
Com base nos tamanhos de tabela fornecidos em Passo 2: testar o desempenho do sistema da tabela inicial e estabelecer uma linha de base, defina o modo de distribuição da seguinte forma.
Nome da tabela |
Número de linhas |
Modo de distribuição |
---|---|---|
Store_Sales |
287997024 |
Hash |
Date_Dim |
73049 |
Replicação |
Store |
402 |
Replicação |
item |
204000 |
Replicação |
Time_Dim |
86400 |
Replicação |
Promotion |
1000 |
Replicação |
Customer_Demographics |
1920800 |
Hash |
Customer_Address |
1000000 |
Hash |
Household_Demographics |
7200 |
Replicação |
Customer |
1981703 |
Hash |
Income_Band |
20 |
Replicação |
Selecionar uma chave de distribuição
Se sua tabela for distribuída usando hash, escolha uma chave de distribuição adequada. É aconselhável selecionar uma chave de distribuição de acordo com Selecionar uma chave de distribuição.
Selecione a chave primária de cada tabela como a chave de distribuição da tabela de hash.
Nome da tabela |
Número de registros |
Modo de distribuição |
Chave de distribuição |
---|---|---|---|
Store_Sales |
287997024 |
Hash |
ss_item_sk |
Date_Dim |
73049 |
Replicação |
- |
Store |
402 |
Replicação |
- |
Item |
204000 |
Replicação |
- |
Time_Dim |
86400 |
Replicação |
- |
Promotion |
1000 |
Replicação |
- |
Customer_Demographics |
1920800 |
Hash |
cd_demo_sk |
Customer_Address |
1000000 |
Hash |
ca_address_sk |
Household_Demographics |
7200 |
Replicação |
- |
Customer |
1981703 |
Hash |
c_customer_sk |
Income_Band |
20 |
Replicação |
- |