- Este tópico contém 8 respostas, 4 vozes e foi atualizado pela última vez 16 anos, 9 meses atrás por
Thiago Vilhena.
-
AutorPosts
-
27 de maio de 2009 às 12:43 am #86993
Thiago Vilhena
ParticipantePessoal! me ajudem ai por favor preciso criar uma tabela , sem indice com o freelist de 10 e carregue 2.000.000 de linhas. A tebala devera ter 10 campos. Commit de 2000 em 2000. Carregue primeiramente sem o hint de append , meça o elapse time.
Limpe a tabela e faça o mesmo com o hint de apeend
A tabeladevera ser criada com nologging.
tipo eu criei a tabela
CREATE TABLE “SCOTT”.”TAB_SPED_TESTE3″ ( “ID” NUMBER(10) NOT NULL , “FUNCIONARIO” VARCHAR2(50), “EMAIL” VARCHAR2(100), “ENDERECO” VARCHAR2(100), “CEP” NUMBER(20), “CELULAR” NUMBER(20), “DATA_NASCIMENTO” DATE, “ESTADO_CIVIL” VARCHAR2(50), “DATA_ATUAL” DATE, “NOME_MAE” VARCHAR2(30)) STORAGE ( INITIAL 20M)
até ai beleza
so que para inserir o cara que me pediu quer que eu insira meio assimselect ‘insert into scott.tab_sped_teste3 values
(||1||,’||thiago||’,’||thiago@gmail.com||’,’||castelinho||’,||21010154||,||76085996||,||10/02/1766||,’||enrolado||’,||25/05/2009||,’||MAMEQUERIDA||’)’ from scott.tab_sped_teste3; ( que nao esta funcionando!!!)
bom isso é pra hoje ainda!
=/…abração pessoal
27 de maio de 2009 às 1:15 am #86996Leonardo Litz
ParticipanteThiago, seguinte
o seu exemplo deve ficar assim
select ‘insert into scott.tab_sped_teste3 values (”’||1||”’,”’||’thiago’||”’,”’||’thiago@gmail.com’||”’,”’||’castelinho’||”’,”’||’21010154’||”’,”’||’76085996’||”’,to_date(”’||’10/02/1766’||”’,”dd/mm/yyyy”),”’||’enrolado’||”’,to_date(”’||’25/05/2009’||”’,”dd/mm/yyyy”),”’||’MAMEQUERIDA’||”’);’ from scott.tab_sped_teste3
Só que temos algumas considerações, lá vai:
1º Se vc acabou de criar a tabela tab_sped_teste3, ela não terá registros, logo o retorno desta query será nada, não irá trazer o resultado que você espera, tente utilizar o dual para ver o resultado, e execute este.
2º Desta forma irá gerar um comando insert para cada linha, imagine 2 milhoes de insertes isso em um arquivo texto vai ficar de um tamanho enorme.
3º Quando vc salvar este retorno de select em um arquivo texto, vc terá que colocar os comits manualmente.
Exemplifiquei no seu post anterior uma forma mais fácil de se fazer.
Vlw Leonardo Litz
27 de maio de 2009 às 3:29 am #86998Thiago Vilhena
ParticipanteBeleza cara vlw pela força ai!!
eu to fazendo aqui, mas na verdade nao sei com exatidao o que o maluco quer, tipo ele quer ver o tempo que a query gasta executando com append e o tempo que ela gasta executando sem append!!
27 de maio de 2009 às 4:08 am #86999Thiago Vilhena
ParticipanteDale Galera to consseguindo aque xDDDD
so quero saber so + uma parada, como que eu faço pra saber o tempo que uma determinada query levou? eu quero saber o tempo de ELAPS!!
posso estar enganado + eu ouvi algo com SPOOL ou algo parecido!!
deixa eu explicar, o DBA mega super hiper hiper plus pediu para que eu criase uma tabela com 2milhoes de registros, e visse o tempo de elapse que um comando sql leva com um append e o tempo de elapse que o comando sql leva sem append.
so falta eu descobrir como que ve o tempo de elapse
abração pra galera!!!
27 de maio de 2009 às 5:36 am #87001Manoel872
ParticipanteExecuta com um trace e depois usa o tkprof… acho q essa e uma possivel solução.
27 de maio de 2009 às 1:15 pm #87002ramasine
ParticipanteGera o spool, e logo após SET TIMING ON, se for via tool sqlplus..
27 de maio de 2009 às 3:03 pm #87003Thiago Vilhena
Participantecomo que eu faço esse spool ai?
27 de maio de 2009 às 3:24 pm #87004ramasine
ParticipanteJá no sqlplus:
SQL> spool c:query.txt
SQL> SET TIMING ON
SQL> execute a sua query;
SQL> spool offOnde:
query.txt (nome do arquivo de log, que pode ser escrito em qq lugar)
Ao consultar o log verás no final da execução da query:
Elapsed: 00:00:00.05
Abs
Marcelo
27 de maio de 2009 às 3:50 pm #87006Thiago Vilhena
ParticipanteBeleza marcelaoo!!
era isso mesmo que eu queria!!
abraçao lki!!
-
AutorPosts
- Você deve fazer login para responder a este tópico.