Uso
em DBMS
CoSORT
- O Ambiente RDBMS
Muitas aplicações cliente/servidor são
desenvolvidas com sistemas de gerenciamento de banco de
dados relacional (RDBMS). Como UNIX e Wintel são
agora as plataformas operacionais atraentes em custos,
estas questões e respostas tem sido mais importantes:
Como
um sort melhora a performance de um RDBMS?
Quais são as especificações
de uso do CoSORT nestes ambientes ?
-
Oracle
- DB2
- Sybase e SQL Server
- Software AG Natural
- Cincom Supra SQL
-
Como eu posso usar o CoSORT para melhoria de tempos de
cargas no RDBMS?
- O que faz o CoSORT?
- Porque cada vez mais, usuários
de RDBMS escolhem o CoSORT?

- Como um SORT melhora a performance de um RDBMS?
Como uma solução de manipulação de dados externos e classificação
em alta velocidade, o CoSORT pode radicalmente melhorar
sensivelmente o desempenho de operações do RDBMS. Cargas,
reorganização de tabelas, extração de dados, totalizações
e geração de relatórios, todos podem se beneficiar. As
associações entre dados externos (join) feitas pelo CoSORT,
também são executadas com extrema velocidade que quando
usados via SQL ou PL/SQL.
Como os sorts disponíveis nos sistemas operacionais UNIX
e em compiladores COBOL, os sorts dentro dos sistemas
de banco de dados não são designados para altos volumes
de processamento. A Sybase recomenda a classificação externa
para acelerar a criação de índices durante a carga de
dados na base (veja em Sybase SQL Server Reference Manual,
Volume 1: Commands, Functions and Topics).
O
CoSORT combina a velocidade de processamento paralelo,
suporte para todos tipos de dados, e a mais flexível funcionalidade
de mapeamento de dados, para prover o caminho mais barato
de acabar com os gargalos do banco de dados. O CoSORT
é muito utilizado por DBAs para aumentar a velocidade
dos "reorgs." Os dados são descarregados de tabelas, ou
"dumped" para um flat file, o qual é rapidamente classificado
pelo CoSORT, e então recarregados. Devido a criação de
índices ser mais eficiente com dados classificados, as
cargas são mais rápidas. Veja instruções específicas
para databases nesta página.
E mais, utilitários de cargas dos RDBMS, não trabalham
bem se os dados contém registros duplicados ou encontram
um registro fora de seqüência. Além de você ganhar tempo
nas cargas devido à classificação, também prepara os dados,
eliminando duplicidades, e agregando milhões de registros
no mesmo instante. Freqüentemente tabelas reorganizadas
também aumentam o tempo de respostas de transações (queries).

Como
explorar o CoSORT nestes ambientes ?
1)
Descarregar o RDBMS. Os administradores de banco de
dados (DBAs) tipicamente usam a cláusula SQL SELECT para
extrair arquivos da base de dados. Os usuários do CoSORT
sabem que a extração pode ser mais rápida se remover qualquer
ORDER BY, GROUP BY e/ou DISTINCT, e porque o CoSORT pode
classificar, agregar e remover duplicações muito mais
rápido que qualquer RDBMS ou ferramenta de ETL, deixando-os
livres para fazer o que eles fazem de melhor.
2)
Classificar/ Transformar com o CoSORT. Chamando
um utilitário externo do CoSORT (Sort, SortI, ou SortCL)
na linha de comando, shell script, Java GUI, ou mesmo
de uma chamada API dentro do seu programa para classificar
arquivos de entrada ou tabelas pelo campo chave usado
em um índice. Clique aqui para ver outras simulações
de filtros de dados, comparação (matching), conversão,
agregação, reposicionamento, e relatórios gerados via
um job SortCL.
3)
Recarga do RDBMS. Veja instruções específicas abaixo,
para cada tipo de banco de dados, que chegam a 90% mais
rápidas !

Para
Oracle
Você
pode conferir no manual Oracle's Server Utilities Guide,
que a pré-classificação aumenta a performance das cargas
e queries, e minimiza o armazenamento temporário necessário
durante a carga.
1) Use o SQL para extrair suas tabelas para arquivos textos;
2) Classifique a(s) entrada(s) com o campo índice mais
abrangente (ou somando colunas)usando qualquer um dos
utilitários do CoSORT ou APIs;
3)
Use o SQL*LOADER para carregar a(s) saida(s) ordenada(s),
com o argumento da linha de comando DIRECT=TRUE; e,
4)
Para criar índices durante a carga, use a cláusula SORTED
INDEXES no arquivo de controle de carga. Para criar índices
após a carga, use o comando SQL CREATE INDEX com a opção
NOSORT. Per Oracle's Server Utilities Guide, presorting
improves the performance of direct path loads and queries,
and minimizes the temporary storage requirements during
the load.

Para
DB2
Use
o CoSORT Load Accelerator (CLA) para DB2, adicionando
a seguinte variável de ambiente:
DB2SORT=cosort_la.so
export DB2SORT
e
o DB2's loader usará o sort do CoSORT via co-rotina, em
vez do sort próprio. Este processo é totalmente transparente,
reduz tempos de cargas no mínimo em 50%, e roda em versões
UDB 5.1, 5.2, 6.1 e 7.1 em todas plataformas UNIX.
Para
Sybase e SQL Server
1) Você vai criar um índice de cluster, mas neste estágio
os índices precisam ser eliminados. Isto é feito pela
criação de tabelas sem índices ou triggers, ou via dropp
na tabela para ser carregada.
2)
Use qualquer interface do CoSORT para classificar os dados
na chave primária.
3) A tabela ordenada é carregada rapidamente porque não
há índices na tabela.
4) Use o comando SQL, CREATE INDEX, usando a opção SORTED_DATA,
para criar o índice de cluster.

For
Software AG Natural
1) Coloque o arquivo libnat2cs.a no diretório $COSORT_HOME/lib
2) Coloque o Makefile.nat2cs em $NATDIR/$NATVERS/bin/build
3)
Execute:
cd
$NATDIR/$NATVERS/bin/build
mv Makefile Makefile.orig
ln -s Makefile.nat2cs Makefile
setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:$COSORT_HOME/lib
4)
Use a procedure de linking:
Para
Cincom Supra SQL
A
Cincom Systems acoplou diretamente a API do CoSORT dentro
de sua funcionalidade de cargas indexadas no banco de
dados Supra SQL para UNIX, v2.8. Nenhuma intervenção do
usuário é requerida, mas a "High Speed Index Populate
Feature" é um módulo licenciado separadamente.

Como
eu posso usar o CoSORT para reduzir tempos de cargas do
DBMS ?
Crie
sua própria aplicação, na sua linguagem, para chamar o
CoSORT via co-rotina ou sub-rotina, passando dados e parâmetros
de job para sua biblioteca. A arquitetura única de co-rotina
do CoSORT, permite que a transferência dos registros sejam
feitas diretamente em memória, e elimina o I/O de transferência
de arquivos. O benefício adicional de uma chamada API
é que você pode definir qualquer entrada, comparar e/ou
definir saídas na sua linguagem preferida.
Da
mesma forma, via pipes ou API, você pode obter os dados
do banco de dados e recarregar a saída diretamente em
novas/ existentes tabelas.

O
que afinal o CoSORT faz?
Muito
- Tudo depende do tipo de processamento que você precisa
fazer. Principalmente porque o CoSORT tem o propósito
geral de classificação para cargas de banco de dados e
relatórios gerenciais para processos de migração de sort
de mainframes visando o custo/ benefício em sistemas abertos.
O CoSORT é também muito utilizado para implementadores
de data warehouse para popular data marts e funções gerais
de extração, joins, agregação e transformações. Veja
Exploiting CoSORT for Data Warehouse Acceleration.
Visando
melhorias em aplicações do mercado, desenvolvedores utilizam
o CoSORT integrado, via co-rotina, dentro de seus pacotes
para dar velocidade às classificações sem transferências
de I/O. E finalmente, muitas pessoas familiares com, ou
dependente do SAS, SyncSort, COBOL, DataStage, sintaxe
de sort do UNIX ou Windows/DOS, buscam o CoSORT's para
expandir funcionalidades destas ferramentas.

Por que cada vez mais os usuários de DBMS escolhem o CoSORT?
O
CoSORT traz mais versatilidade e experiência para UNIX
ou Wintel que qualquer outro produto de sort. Sua interoperabilidade
entre plataformas garante a independência de hardware
de Windows PCs para servidores MPP UNIX. O CoSORT é também
o sort mais rápido em sistemas abertos - ele pode classificar
(reorg) 1Gb em um minuto em Compaq AlphaServer rodando
Tru64 (Digital) UNIX, e até 2.4Gb por minuto em 4 cpus
de um grupo de 64 CPUs em SunFire e IBM Numa-Q servers.
No velho NCR 4100, 500Mb foram ordenados em 110 segundos,
e em um Sun UE 3000 com 4 CPUs, 8Gb menos de meia hora
e 49.5 Gb em 3 horas.
O
CoSORT usa uma variedade de recursos amigáveis, controles
de sintonia SMP para melhorar a eficiência enquanto permite
que outros jobs rodem normalmente, consistente com a filosofia
de "boa vizinhança" do UNIX. O CoSORT também tem a maioria
das interfaces de propósito geral de qualquer pacote de
sort. É licenciado uma vez para uso perpétuo, com preços
razoáveis. O CoSORT é bem documentado tem responsabilidade
de suporte para todos países.

|