Hi Pavel, 

 I was not using a prepared statement -- I think I was looking at the 0.9.9 
docs on firebirdsql.org and I missed that it no longer creates them.  (To which 
I'll add: it would be nice if it behaved the same as kinterbasdb [where a 
cursor prepares/caches only the current statement] so it is a drop in 
replacement.  But if that's non standard behavior, I understand). 

 Using a prepared statement definitely helps -- it's over twice as fast.  
However kinterbasdb is still about 50-150% faster.  My simple table is at the 
150% end, and consists of an integer pk and 3 varchars with the same 3 strings 
every insert.  I'm not sure if that helps at all -- is there anything we can do?
 

 cProfile looks like (total run time was 129.5 seconds):
 ncalls  tottime  percall  cumtime  percall filename:lineno(function)

    100001    1.824    0.000  128.999    0.001 fbcore.py:3554(execute)
    100001   52.689    0.001   61.693    0.001 fbcore.py:2144(__init__)
    100001   43.456    0.000   57.466    0.001 fbcore.py:3257(_execute)
    100000    5.887    0.000   13.024    0.000 fbcore.py:2997(__Tuple2XSQLDA)
    100001    0.290    0.000    6.729    0.000 fbcore.py:3371(__del__)
    100001    1.672    0.000    6.439    0.000 fbcore.py:3236(_close)
    200004    0.691    0.000    4.773    0.000 fbcore.py:428(is_dead_proxy)

 


 Thanks,
 

 Nathan
  

  • [fire... at2tce3bx6dxq2hngnxe5xv74qhlsmeghchit...@yahoo.com [firebird-python]
    • ... Pavel Cisar pci...@ibphoenix.cz [firebird-python]
      • ... at2tce3bx6dxq2hngnxe5xv74qhlsmeghchit...@yahoo.com [firebird-python]
        • ... Pavel Cisar pci...@ibphoenix.cz [firebird-python]

Reply via email to