Pular para o conteúdo

Compressão = Velocidade

Compressão = Velocidade

Se estiver utilizando Oracle 11gR2, utilize o Advanced Compression. É um dos motivos que eu digo que qualquer aplicação fica mais rápida em 11gR2.

Há uma crença sobre Oracle a respeito de tabelas com COMPRESSION, pois o uso delas irá utilizar mais CPU. Na verdade, o algoritmo de compressão está tão otimizado, e o ganho de desempenho com elas é tão grande, que menos CPU será utilizada durante toda a execução do SQL pois a resposta total será mais rápida, compensando os ciclos gastos com a descompressão. Quanto a outros recursos, imagine somente o que a economia de DB_CACHE_SIZE lhe trará.
Veja a diferença absurda de tempos nos exemplo abaixo. Repeti 5x cada teste, pra eliminar qualquer outra variável.

[oracle@Oracle-01 ~]$ sqlplus SCOTT/TIGER

 SQL*Plus: Release 11.2.0.1.0 Production on Thu Sep 9 14:12:21 2010

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining,
Oracle Database Vault and Real Application Testing options

SQL> SET TIMING ON
SQL> SELECT COUNT(*) FROM T;

COUNT(*)
----------
7121664

Elapsed: 00:00:32.28
SQL> /

COUNT(*)
----------
7121664

Elapsed: 00:00:29.66
SQL> /

COUNT(*)
----------
7121664

Elapsed: 00:00:31.14
SQL> /

COUNT(*)
----------
7121664

Elapsed: 00:00:30.08
SQL> /

COUNT(*)
----------
7121664

Elapsed: 00:00:31.74
SQL> CREATE TABLE T2 COMPRESS AS SELECT * FROM T;

Table created.

Elapsed: 00:02:14.21
SQL> SELECT COUNT(*) FROM T2;

COUNT(*)
----------
7121664

Elapsed: 00:00:04.33
SQL> /

COUNT(*)
----------
7121664

Elapsed: 00:00:01.14
SQL> /

COUNT(*)
----------
7121664

Elapsed: 00:00:01.07
SQL> /

COUNT(*)
----------
7121664

Elapsed: 00:00:01.01
SQL> /

COUNT(*)
----------
7121664

Elapsed: 00:00:01.01
SQL> SELECT TO_CHAR(SUM(BYTES)) FROM DBA_SEGMENTS WHERE SEGMENT_NAME = 'T';

TO_CHAR(SUM(BYTES))
----------------------------------------
1613758464

Elapsed: 00:00:01.99
SQL> SELECT TO_CHAR(SUM(BYTES)) FROM DBA_SEGMENTS WHERE SEGMENT_NAME = 'T2';

TO_CHAR(SUM(BYTES))
----------------------------------------
243269632

 Elapsed: 00:00:00.46
SQL>

Quão útil foi este post ?

Clique em uma estrela para classificar o post

nota média 5 / 5. Contagem de votos: 14

Sem votos ! Seja o primeiro a classificar !

3 comentários em “Compressão = Velocidade”

Deixe um comentário para icewarp Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress