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 | - |