How to optimize an SQL query with many thousands of WHERE clauses

Posted by bugaboo on Stack Overflow See other posts from Stack Overflow or by bugaboo
Published on 2010-04-19T15:29:35Z Indexed on 2010/04/19 15:33 UTC
Read the original article Hit count: 239

Filed under:
|
|
|

I have a series of queries against a very mega large database, and I have hundreds-of-thousands of ORs in WHERE clauses. What is the best and easiest way to optimize such SQL queries? I found some articles about creating temporary tables and using joins, but I am unsure. I'm new to serious SQL, and have been cutting and pasting results from one into the next.

SELECT doc_id, language, author, title FROM doc_text WHERE language='fr' OR language='es'
SELECT doc_id, ref_id FROM doc_ref WHERE doc_id=1234567 OR doc_id=1234570 OR doc_id=1234572 OR doc_id=1234596 OR OR OR ...
SELECT ref_id, location_id FROM ref_master WHERE ref_id=098765 OR ref_id=987654 OR ref_id=876543 OR OR OR ...
SELECT location_id, location_display_name FROM location
SELECT doc_id, index_code, FROM doc_index WHERE doc_id=1234567 OR doc_id=1234570 OR doc_id=1234572 OR doc_id=1234596 OR OR OR x100,000

These unoptimized query can take over 24 hours each. Cheers.

© Stack Overflow or respective owner

Related posts about sql

Related posts about Oracle