al">Oracle 11g New Features – Parte 2
O que há de novo na mais recente versão do BD Oracle
A cada nova versão (ler Nota DevMan 1), novas funcionalidades são disponibilizadas para utilização. Estas com certeza lhe trarão benefícios, sejam eles referentes a segurança, performance, facilidade no desenvolvimento das aplicações, etc. Mas é claro que é muito importante testar com muita seriedade antes de efetivamente implementar cada nova funcionalidade.
Portanto, migrar seu banco de dados para a versão mais recente não deve ser feito simplesmente para estar na última versão. Conheça as novas funcionalidades e avalie quais delas trarão benefícios ao seu banco de dados e procure implementá-las.
Adotando esta linha, trazemos mais algumas das novas funcionalidades que realmente poderão fazer com que seu banco de dados lhe traga melhores resultados.
Nota DevMan 1. Versão e download do Oracle Database 11g
A versão mais atual do Oracle é a 11.1.0.6.0, que está disponível para as seguintes plataformas:
. Microsoft Windows (32-bit) - 1.7GB;
http://download.oracle.com/otn/nt/oracle11g/win32_11gR1_database.zip
. Microsoft Windows (x64) - 1.7GB;
http://download.oracle.com/otn/nt/oracle11g/win64_11gR1_database.zip
. Linux x86 - 1.7GB;
http://download.oracle.com/otn/linux/oracle11g/linux_x86_11gR1_database.zip
. Linux x86-64 - 1.8GB;
http://download.oracle.com/otn/linux/oracle11g/linux.x64_11gR1_database.zip
. Solaris (SPARC) (64-bit) - 1.9GB;
http://download.oracle.com/otn/solaris/oracle11g/solaris.sparc64_11gR1_database.zip
. AIX (PPC64) - 2.3GB;
Disco 1: http://download.oracle.com/otn/aix/oracle11g/aix.ppc64_11gR1_database_disk1.zip
Disco 2: http://download.oracle.com/otn/aix/oracle11g/aix.ppc64_11gR1_database_disk2.zip
. HP-UX Itanium - 2.3GB;
Disco 1: http://download.oracle.com/otn/hp/oracle11g/hpia64_11gR1_database_1of2.zip
Disco 2: http://download.oracle.com/otn/hp/oracle11g/hpia64_11gR1_database_2of2.zip
. HP-UX PA-RISC (64-bit) - 2.3 GB.
Disco 1: http://download.oracle.com/otn/hp/oracle11g/hpux.parisc_11gR1_database_1of2.zip
Compressed tables (Tabelas Comprimidas)
O Oracle 11g traz a promessa de tabelas comprimidas sem retalhos para ambientes OLTP (Nota DevMan 2), o que significa dizer que transações DML (insert, update, delete) deverão funcionar perfeitamente com uma sobrecarga (overhead) muito pequena em tabelas comprimidas. E, pelo menos em teoria, irá proporcionar operações de leitura bem rápidas.
Nota DevMan 2. OLTP – OnLine Transaction Processing
Online transaction processing (processamento de transações em tempo real), ou simplesmente OLTP, refere-se a uma classe de sistemas que facilitam e gerenciam aplicações orientadas a transações, tipicamente para entrada e recuperação de dados.
OLTP também tem sido utilizado para se referir a sistemas que respondem imediatamente às requisições de usuários.
Um caixa eletrônico de um banco (ATM – Automatic Teller Machine em inglês) é um bom exemplo de uma aplicação comercial de processamento de transações.
Esta tecnologia é muito utilizada na maioria das indústrias, incluindo bancos, companhias aéreas, supermercados e fábricas
Para comprimir uma tabela é necessário usar a cláusula COMPRESS no comando CREATE TABLE ou ALTER TABLE. Desta forma, é possível comprimir a tabela mesmo após ela tenha sido criada e até mesmo já contenha dados. Neste contexto, precisamos estar atentos para um detalhe, ao utilizar o comando ALTER TABLE, todos os dados inseridos na tabela anteriormente não serão comprimidos, somente as novas inserções farão uso do recurso. O mesmo acontece para o contrário, ou seja, caso utilize o comando ALTER TABLE ... NOCOMPRESS, todos os dados que já estão comprimidos continuarão desta forma e as novas inserções serão feitas sem compressão.
Um detalhe: ao utilizar a cláusula COMPRESS ou COMPRESS FOR DIRECT_LOAD OPERATIONS será habilitada a compressão apenas para operações de carga direta (direct path load). Para habilitar a compressão de tabela para toda e qualquer operação, basta usar a cláusula COMPRESS FOR ALL OPERATIONS.
Vejamos os testes de compressão na Listagem 1.
Listagem 1. Testes de utilização de tabela comprimida.
1. SQL> CREATE TABLE OBJ_NOCOMPRESS
2. 2 AS
3. 3 SELECT *
4. 4 FROM DBA_OBJECTS
5. 5 WHERE 1=2;
6.
7. Table created.
8.
9. Elapsed: 00:00:02.20
10. SQL> CREATE TABLE OBJ_COMPRESS COMPRESS FOR ALL OPERATIONS
11. 2 AS
12. 3 SELECT *
13. 4 FROM OBJ
14. 5 WHERE 1=2;
15.
16. Table created.
17.
18. Elapsed: 00:00:00.18
19. SQL> -- SEM COMPRESSÃO
20. SQL> BEGIN
21. 2 FOR I IN 1..100 LOOP
22. 3 INSERT INTO OBJ_NOCOMPRESS
23. 4 SELECT * FROM DBA_OBJECTS;
24. 5 END
25. 6 COMMIT;
26. 7 END;
27. 8 /
28.
29. PL/SQL procedure successfully completed.
30.
31. Elapsed: 00:01:32.56
32.
33. -- COMPRIMIDA – CARGA ATRAVÉS DE COMANDO INSERT
34. SQL> BEGIN
35. 2 FOR I IN 1..100 LOOP
36. 3 INSERT INTO OBJ_COMPRESS
37. 4 SELECT * FROM DBA_OBJECTS;
38. 5 END
39. 6 COMMIT;
40. 7 END;
41. 8 /
42.
43. PL/SQL procedure successfully completed.
44.
45. Elapsed: 00:04:29.38
46.
47. SQL> SELECT SEGMENT_NAME, BYTES
48. 2 FROM DBA_SEGMENTS
49. 3 WHERE SEGMENT_NAME IN ('OBJ_COMPRESS','OBJ_NOCOMPRESS');
50.
51. SEGMENT_NAME BYTES
52. ---------------- ----------
53. OBJ_NOCOMPRESS 828375040
54. OBJ_COMPRESS 394264576
Primeiramente criamos uma tabela convencional, sem compressão (linhas
Os testes efetivamente começam agora. Criamos um bloco PL/SQL (linhas
Finalmente, verificamos o tamanho de cada tabela consultando a tabela do dicionário de dados DBA_SEGMENTS (linhas
Vejamos agora, na Listagem
Listagem 2. Testes de utilização de tabela comprimida em carga direta (direct path).
1. SQL> create table obj1_compress compress
2. 2 as
3. 3 select *
...