Opened 13 years ago

Last modified 13 years ago

#744 assigned enhancement

RDBMS: Incremental DescribeSchema tuning.

Reported by: brentrobinson Owned by: brentrobinson
Priority: major Milestone: 3.6.0
Component: GenericRdbms API Version: 3.6.0
Severity: 3 Keywords: incremental DescribeSchema performance
Cc: External ID:

Description

The following sequence of steps:

  • execute FdoIGetClassNames
  • execute FdoIDescribeSchema for a list of classes

can be slow because the FdoIDescribeSchema step ends up fetching the classes one table or view at a time from the RDBMS server.

For example, for the SQLServerSpatial provider, describing 20 feature classes from a 1500 class local datastore takes 8 seconds.

Change History (3)

comment:1 by brentrobinson, 13 years ago

Status: newassigned

Revision: 5877 Author: brentrobinson Date: 3:55:08 PM, Monday, January 31, 2011 Message: Ticket#744: Bulk load tables and views if they have been cached but their columns have not.


Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/DbObject.cpp Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Owner.cpp Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Owner.h Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Rd/IndexReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/SQLServerSpatial/SchemaMgr/Ph/Rd/IndexReader.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/DbObject.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/Owner.h Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/DbObject.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Fkey.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/IndexLoader.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Owner.cpp

comment:2 by brentrobinson, 13 years ago

Revision: 5897 Author: brentrobinson Date: 10:35:46 AM, Thursday, February 17, 2011 Message: Ticket#744: Implement incremental schema loading for MySQL. Performance improvement not very dramatic but some of the physical schema reader processing was pushed down to the generic level so this change accomplishes some code cleanup.


Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/DbObject.cpp Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Owner.cpp Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Owner.h Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/ColumnReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/ColumnReader.h Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/ConstraintReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/ConstraintReader.h Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/DbObjectReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/DbObjectReader.h Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/FkeyReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/FkeyReader.h Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/IndexReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/IndexReader.h Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/PkeyReader.cpp Modified : /trunk/Providers/GenericRdbms/Src/MySQL/SchemaMgr/Ph/Rd/PkeyReader.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/Rd/Reader.h Modified : /trunk/Utilities/SchemaMgr/Inc/Sm/Ph/Rd/TableJoin.h Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Rd/Reader.cpp Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Rd/TableJoin.cpp

comment:3 by brentrobinson, 13 years ago

Revision: 5901 Author: brentrobinson Date: 3:43:59 PM, Wednesday, February 23, 2011 Message: Ticket#744: reset the index loader when a full DescribeSchema causes objects to be cached or re-cached. This prevents subsequent per-table index retrieval.


Modified : /trunk/Utilities/SchemaMgr/Src/Sm/Ph/Owner.cpp

Note: See TracTickets for help on using tickets.