Il 31/08/2011 10.57, Mark Rotteveel ha scritto: > On Tue, 30 Aug 2011 23:27:01 +0200, Fulvio Senore<mail...@fsoft.it> > wrote: >> When I open a catalog (a Firebird database) the program executes a >> number of queries to (partially) fill some tree controls that work like >> folders in a file system. The queries are always very simple, something >> like "SELECT * FROM Table WHERE someID = 5". The number of queries that >> are executed when opening a catalog changes with the stored data: for my > >> own catalog the program executes approximately 600 queries. > > Unrelated to your actual problem: I don't know your database structure and > requirements, but a query explosion to 600 queries for opening a catalog > (which on the surface sounds easy) seems a bit excessive. Are you sure you > aren't falling in the N+1 query trap, where 1 query could suffice? > > Mark
I didn't know anything about the N+1 query trap, but Google was my friend. Yes, that is my problem, but I don't know how to find a better solution. My program shows 3 user selectable views. For each view a tree control at the left shows a structure of "folders" and "subfolders" where images are organized. When I open a catalog I load the first 2 levels of items in the tree controls, so that users can see all the first level items and they can see if an item has sub-items so it can be expanded. Further items loading in the tree controls happens when the user expands an existing item. Of course if the user has a lot of items in the tree controls this leads to an explosion of queries. This has never been a problem before, but I realize that a better solution would be welcome. At the moment I enumerate all the first level items with a query, then I execute a query for each item to find its sub-items. Items are stored in a single table, with a parent-child relationship created using a FATHER_ID field. I probably need a better solution, but probably this question would be better suited for the Firebird Support list. Fulvio ------------------------------------------------------------------------------ Special Offer -- Download ArcSight Logger for FREE! Finally, a world-class log management solution at an even better price-free! And you'll get a free "Love Thy Logs" t-shirt when you download Logger. Secure your free ArcSight Logger TODAY! http://p.sf.net/sfu/arcsisghtdev2dev Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel