SQL Server compare table entries for update

Posted by Dave on Stack Overflow See other posts from Stack Overflow or by Dave
Published on 2010-05-27T15:23:33Z Indexed on 2010/05/27 15:41 UTC
Read the original article Hit count: 240

Filed under:
|
|
|

I have a trade table with several million rows. Each row represents the version of a trade. If I'm given a possibly new trade I compare it to the latest version in the trade table. If it has changed I add a new version, otherwise I do nothing. In order to compare the 2 trades I read the version from the trade table into my application.

This doesn't work well when I'm given 10s of thousands of possibly new trades. Even batching reads to read in a 1000 trades at once and compare them the whole process can take several minutes. All the time is spent in the DB.

I'm trying to find a way to compare the possibly new trades to the ones in the trade table without so much I/O. What I've come up with so far is adding a hash column to each row in the trade table. The hash is of all the trade fields. Then when I'm given possibly new trades I compute their hash, put the values into a temporary table, then find ones that are different. This feels very hacky. Is there a better way of doing it?

Thanks

© Stack Overflow or respective owner

Related posts about sql

Related posts about sql-server