200 times slower then MSSQL??

Поиск
Список
Период
Сортировка
От Alexander Dolgin
Тема 200 times slower then MSSQL??
Дата
Msg-id E1Ct8wq-0008En-00@lata.dp.ua
обсуждение исходный текст
Ответы Re: 200 times slower then MSSQL??  (Christopher Kings-Lynne <chriskl@familyhealth.com.au>)
Re: 200 times slower then MSSQL??  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: 200 times slower then MSSQL??  (Kaloyan Iliev Iliev <news1@faith.digsys.bg>)
Re: 200 times slower then MSSQL??  (PFC <lists@boutiquenumerique.com>)
Список pgsql-performance
Hi all,

We are developing some application that works with DB over JDBC. We've used
MSSQL before and trying to migrate to PostgreSQL now. Unfortunately problems
with performance are found. MSSQL with default configuration looks like much
faster then PostgreSQL on the same hardware (PostgreSQL8 rc5 was used). I've
tried to increase work_mem significant (work_mem = 262144) but it doesn't
help.
Here is result of simple benchmark. I have table
CREATE TABLE elt_tcli_messagelog
(
  connectionname varchar(64),
  msgseqnum int4,
  connectionmessageid int4,
  logtimestamp varchar(64),
  isfromcounterparty char(1),
  msgtype varchar(64),
  possdupflag char(1),
  isoutofsequence char(1),
  ordtrnid varchar(64),
  ordrqstid varchar(64),
  counterrequestid varchar(64),
  clordid varchar(64),
  origclordid varchar(64),
  execid varchar(64),
  exectranstype varchar(64),
  exectype varchar(64),
  ordstatus varchar(64),
  lastqty float8,
  orderqty float8,
  cumqty float8,
  leavesqty float8,
  sendercompid varchar(64),
  targetcompid varchar(64),
  tradeaccthrchy varchar(64),
  tradeacctid varchar(64),
  routedtransactiondestination varchar(64),
  originatingconnectionname varchar(64),
  originatingconnectionmsgid int4,
  instrument varchar(64),
  portfolio varchar(64),
  prevseqnum int4,
  "Message" text,
  nonmetadatafields text
)

with about 8000 rows. For this table query:

SELECT MAX(MsgSeqNum),MAX(LogTimestamp) FROM ELT_tcli_MessageLog
WHERE LogTimestamp  >=  '0' AND IsFromCounterParty  =  'Y' AND
IsOutOfSequence = 'N'
     AND ConnectionName  =  'DB_BENCHMARK'
     AND LogTimestamp IN (SELECT MAX(LogTimestamp)
                          FROM ELT_tcli_MessageLog
                          WHERE MsgSeqNum  >  0 AND IsFromCounterParty = 'Y'

                                AND IsOutOfSequence  =  'N' AND
ConnectionName  =  'DB_BENCHMARK')

takes about 1 second on MSSQL Server and 257 seconds on PostgreSQL one.

Does anybody have idea about reasons of such results?

Thanks,
Alexander Dolgin.


В списке pgsql-performance по дате отправления:

Предыдущее
От: Randolf Richardson
Дата:
Сообщение: Re: PostgreSQL vs. Oracle vs. Microsoft
Следующее
От: Tom Lane
Дата:
Сообщение: Re: PostgreSQL vs. Oracle vs. Microsoft