On Sat, Apr 16, 2011 at 5:35 PM, Kenneth Ballard <
kball...@kennethballard.com> wrote:

> Good afternoon,
>
> Here is an issue I started to experience after upgrading from SQLite
> 3.7.5 to 3.7.6 involving a trigger I have on a database table.
>
> The table with the trigger is a 2-column table with the following
> trigger installed to it:
>
> CREATE TABLE [table_a] (
>   [col_a] INTEGER NOT NULL PRIMARY KEY,
>   [col_b] INT64 NOT NULL);
>
> CREATE TRIGGER [RemoveOffers]
> BEFORE DELETE
> ON [table_a]
> BEGIN
> DELETE FROM table_b
> WHERE col_a IN
> (SELECT col_a FROM table_c WHERE col_b = old.col_a);
> END;
>

What's the schema for table_b and table_c?


>
> On 3.7.5, a single delete statement from this table executed almost
> instantaneously even on the largest sets of data it would be clearing
> out. However, after upgrading to 3.7.6 and 3.7.6.1, this isn't the case.
> To have the same performance as I did on 3.7.5, I have to use the
> trigger query separately -- a delete statement on table_a and the delete
> statement on table_b separately.
>
> Again, as a trigger this statement takes seconds to run -- one run took
> as much as 15 seconds to execute. As separate delete statements, it
> takes a fraction of a second, similar to how it ran as a trigger in 3.7.5.
>
> I've also noticed issues where queries with an IN clause (like the
> trigger above) took significantly longer to execute than before, but
> that was cleared up by adding some more indexes to the table
> definitions. But even adding additional indexes didn't help the
> performance of this trigger running as a trigger.
>
> So this begs the question: what changed?
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
D. Richard Hipp
d...@sqlite.org
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to