Does it help to set "read uncommitted" on? (You do that in the connect string too?)
Not in my experiments on windows. (No, it is a pragma. See below.)
I do not have any great faith that my tests on windows will be reflected on *nix; so here is my test harness:
I'd love to see the results from a few runs done' on other OSs.
You can get threads::Q (my own, efficient, self-limiting queue implementation) from here.