Integrando as solucoes para problemas de relatorios em bases transacionaisBases de dados cada vez maiores, grande numero de usuarios concorrendo por dados e relatorios cada vez mais complexos gerando particionamento de tabelas, visoes materializadas e etc. Tem horas que e preciso escalar o banco de dados e dividir transacoes de relatorios e nessa hora entram em discussao as perguntas, pode? Como? Quanto?Escrevi esse artigo a convite da equipe do GPO para continuar lendo, acesse :http://www.profissionaloracle.com.br/gpo/artigo/banco-de-dados/61-integrando-o-oracle-database-com-o-nosql-database-mongodbAbracos !! Fala pessoal, vou postar aqui um dica simples, que e quando se precisa de um tunning rapido nas declaracoes "LIKE" que o CBO naturalmente ignora os indices existentes nas colunas utilizadas pelo LIKE para uso de um FTS. Quando ocorre isso temos o recurso de utilizar um hint forcando a utilizacao do indice.No Blog do Laurent Schneider tem um demo bem legal.Abaixo a demonstracao.CREATE TABLE lsc_t ASSELECT ROWNUM ID, SUBSTR(DBMS_RANDOM.STRING ('n', DBMS_RANDOM.VALUE (2, 8)) || ' ' || DBMS_RANDOM.STRING ('n', DBMS_RANDOM.VALUE (2, 8)) ,1,17) NAME, TRUNC(SYSDATE-ABS(10000*DBMS_RANDOM.NORMAL)) birthdate, LPAD('X',4000,'X') addressFROM DUALCONNECT BY LEVEL <= 1e5;ALTER TABLE lsc_t ADD PRIMARY KEY(ID);CREATE INDEX lsc_i ON lsc_t(NAME);EXEC dbms_stats.gather_table_stats(user,'LSC_T',cascade=>true);SQL> SELECT ID, NAME, birthdate FROM lsc_t WHERE NAME LIKE '%ABC%'; 2---------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |---------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 5044 | 123K| 22123 (1)| 00:04:26 ||* 1 | TABLE ACCESS FULL| LSC_T | 5044 | 123K| 22123 (1)| 00:04:26 |---------------------------------------------------------------------------Statistics---------------------------------------------------------- 379 recursive calls 0 db block gets 100090 consistent gets 100016 physical reads 0 redo size 2066 bytes sent via SQL*Net to client 491 bytes received via SQL*Net from client 4 SQL*Net roundtrips to/from client 5 sorts (memory) 0 sorts (disk) 35 rows processedSWLQL> SELECT /*+INDEX(LSC_T,LSC_I)*/ ID, NAME, birthdate FROM lsc_t WHERE NAME LIKE '%ABC%'; 2-------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |-------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 5044 | 123K| 3574 (1)| 00:00:43 || 1 | TABLE ACCESS BY INDEX ROWID| LSC_T | 5044 | 123K| 3574 (1)| 00:00:43 ||* 2 | INDEX FULL SCAN | LSC_I | 5000 | | 220 (2)| 00:00:03 |-------------------------------------------------------------------------------------Statistics---------------------------------------------------------- 1 recursive calls 0 db block gets 360 consistent gets 322 physical reads 0 redo size 142849 bytes sent via SQL*Net to client 491 bytes received via SQL*Net from client 4 SQL*Net roundtrips to/from client 0 sorts (memory) 0 sorts (disk) 35 rows processed Fala Pessoal,Estamos nos aproximando do GUOB desse ano, como a maioria ja sabe esse e o unico evento TECNICO de Oracle do Pais.E o melhor local para renovar ideias, ficar por dentro das novidades, rever conhecidos e amigos.Eu estarei la pelo 3o ano seguido.Evento mais que recomendado, para quem nao esta em Sao Paulo e ta pensando se vale a pena ir, nao pense , faca a inscricao e compre a sua passagem, e para quem esta em Sao Paulo nao tem a menor desculpa para nao ir.Abracos ! Nesse artigo vamos apresentar o timesten database e mostrar sua funcionalidade que e o timesten in memory cache database. Nessa primeira parte vamos instalar o timesten criar algumas estruturas realizar o cache de