MDX - COMO USAR

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mensagem por rubens »

Na minha instalação do clipper não encontrei o arquivo dbfmdx.obj para linkar junto com o programa entao to usando a lib dbfmdx.lib... Quanto a questao de criar os indices.. é porque quando forem usados com o MDX nao atualizarao os ntx... entao quando for atualizar o retaguarda que é em NTX vou precisar recriar ou reindexar os ntx...
"Eu e minha casa servimos ao Senhor e você ???"
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

A difrença de velocidade para CDX e MDX é muito grande ! Vejo muitos falando de migrar o tipo de arquivo indice , mas não vejo nenhum comentario a respeito de velocidades vantagens e desvantagens !
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Mensagem por rubens »

No meu caso especifico estou mudando porque tive que desenvolver um pdv em delphi mas quero manter a compatibilidade com o retaguarda.. que usa ntx... estou satisfeito com o ntx.. ainda nao tive nehum problema... com eles..
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

mas não vejo nenhum comentario a respeito de velocidades
Então aqui vai um!

Mandei indexar um DBF de 734.300 registros por uma chave de tamanho 67 e o resultado foi o seguinte:
NTX = 140 segundos
CDX = 98 segundos

Código: Selecionar todos

use corca new excl
?time()
index on descend(anome+bplac+strzero(corca,5,0)+dtos(cdata)) to corca
?time()
use
request dbfcdx
rddsetdefault("dbfcdx")
use corca new excl
?time()
index on descend(anome+bplac+strzero(corca,5,0)+dtos(cdata)) tag corca to corca
?time()
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Quanto a velocidade, é só rodar o demo da SIX. Ele dá uma boa idéia da diferença.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Srs. a Duvida do Eder é de CDX para MDX e não NTX para CDX ou MDX !!!...nunca fiz o teste para saber qual a diferença entre CDX e MDX...mas de NTX para CDX ..o exemplo do Eolo...jah explica tudo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

sygecom escreveu:Srs. a Duvida do Eder é de CDX para MDX e não NTX para CDX ou MDX !!!...nunca fiz o teste para saber qual a diferença entre CDX e MDX...mas de NTX para CDX ..o exemplo do Eolo...jah explica tudo.


É isso ae ...
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Então vamos lá. Mandei criar o NTX, CDX e MDX, agora com um arquivo um pouco maior (1.228.019 registros), mas com a mesma estrutura do anterior, e deu o seguinte:

Código: Selecionar todos

RDD    Segundos    Arquivo (em bytes)
NTX    267          67.171.328
CDX    219           9.027.584
MDX    281         185.182.208
a) O tal MDX, além de demorar mais que o NTX, gera um arquivo índice quase 3 vezes maior! Em relação ao CDX, então, dá 20 vezes!! Será que fiz algo errado?

b) a relação NTX / CDX piorou. O tamanho do arquivo, então, interfere na performance da RDD??

Código: Selecionar todos

use corca new excl 
?time() 
index on descend(anome+bplac+strzero(corca,5,0)+dtos(cdata)) to corca 
?time() 
use 

request dbfcdx 
rddsetdefault("dbfcdx") 
use corca new excl 
?time() 
index on descend(anome+bplac+strzero(corca,5,0)+dtos(cdata)) tag corca to corca 
?time()
use 

request dbfmdx 
rddsetdefault("dbfmdx") 
use corca new excl 
?time() 
index on descend(anome+bplac+strzero(corca,5,0)+dtos(cdata)) tag corca to corca 
?time()
quit
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

b) a relação NTX / CDX piorou. O tamanho do arquivo, então, interfere na performance da RDD??
Sem dúvida. Uma vez que o CDX é compactado, o acesso aos dados é mais rápido, apesar do overhead causado pela descompactação.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

O que eu quis ressaltar foi o seguinte:
- DBF com 734k registros: o CDX foi 30% mais rápido que o NTX
- DBF com 1.228k registros: o CDX foi 18% (PIOROU) mais rápido que o NTX
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Ah, sim. Agora entendi. Mas acho normal que isso aconteça. Não existe algoritmo perfeito. E a partir de certo volume, o CDX pode enfrentar alguma dificuldade pra manter o "ritmo". Ele perde força, mas ainda assim, é e continuará sendo mais rápido.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

Bom acho que agora ja da pra dizer que é melhor ficar com CDX mesmo !
C:\Xharbour\Xdev\Fw\VSX
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Mensagem por clodoaldomonteiro »

Olá amigos!

Compilei o programa citado acima com o clipper 5.2 e o blinker7 usando um arquivo com 70000 registros e deu o seguinte resultado:

RDD Segundos Tamanho
------------------------------------
NTX 5 12.295.168
MDX 23 62.621.696
NSX 2 437.248

... não consegui colocar o DBFCDX no teste, dava um erro na linha que abre o arquivo.

Seria certo dizer que o NSX é muito melhor que os outros, pois ele é 28 vezes menor que o NTX e 143 vezes menor que o MDX?

E se quiser usar DBF mais NTX no delphi é só usar o componente halcyom para abrir as tabelas.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

RDD Segundos Tamanho
------------------------------------
NTX 5 12.295.168
MDX 23 62.621.696
NSX 2 437.248
Está certo isso? Pela relação tempo/tamanho, NTX e NSX estão pau a pau, com uma ligeira vantagem pro NTX. Estranho. O NSX deveria ser o diabo com diarréia.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Mensagem por clodoaldomonteiro »

Vou explicar melhor
RDD Segundos Tamanho
------------------------------------
NTX ___5 ____12.295.168
MDX___23____ 62.621.696
NSX___2 ____ 437.248

O NSX é o mais rápido com 2 segundos e em segundo ficou o NTX com 5 segundos.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Responder