I have a database of positions and moves in a strategic game, and I'm searching for unsolved positions that have been connected to an immediate ancestor. I'm using Python 3.5.2, and the code looks like
#!/usr/bin/env python3 """Output positions that are reachable but unsolved at census 18 or greater See page 76 of Qubic log Last Modified: Tue Jan 31 12:13:07 PST 2017 """ import sqlite3 # https://docs.python.org/3.5/library/sqlite3.html with sqlite3.connect("917.db") as conn: for row in conn.execute(""" SELECT DISTINCT ppos FROM move JOIN pos ON mto = pnum WHERE pcensus = 18 and pmin < pmax """): print(row[0]) As written here, this query runs for 1193 minutes (just short of 20 hours). If I remove the "DISTINCT" and instead pipe the result into the sort program that comes with Linux "sort --unique" the query and sort takes only 31 minutes. The results are the same, and consist of 4.2 million rows. This seems extreme. -- word of the year: *kakistocracy* _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users