Página 2 de 3

Enviado: 27 Ago 2007 10:52
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...

Enviado: 27 Ago 2007 13:33
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 !

Enviado: 27 Ago 2007 16:15
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..

Enviado: 27 Ago 2007 16:59
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()

Enviado: 27 Ago 2007 17:12
por Maligno
Quanto a velocidade, é só rodar o demo da SIX. Ele dá uma boa idéia da diferença.

Enviado: 27 Ago 2007 17:28
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.

Enviado: 28 Ago 2007 07:54
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 ...

Enviado: 28 Ago 2007 08:48
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

Enviado: 28 Ago 2007 09:01
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.

Enviado: 28 Ago 2007 09:27
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

Enviado: 28 Ago 2007 09:34
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.

Enviado: 28 Ago 2007 10:20
por ederxc
Bom acho que agora ja da pra dizer que é melhor ficar com CDX mesmo !

Enviado: 19 Set 2007 01:37
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.

Enviado: 19 Set 2007 01:48
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.

Enviado: 19 Set 2007 01:56
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.