![]() | ![]() Products ![]() ![]() ![]() ![]() |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM General » View Thread |
Messages 1 to 8 of 8 total |
![]() |
Fri, Jun 17 2016 8:02 AM | Permanent Link |
Matthew Jones | Is there a way to "get the plan" from a DBISAM Table component? I am
doing an export from DBISAM to JSON, and thus traversing a load of tables. There are sub-tables linked with the MasterSource mechanism, and also some where I do a Locate to find a value. If these were SQL, I'd ask for the plan, and would be able to see where it says "non-optimal" and add the appropriate index to speed things up. But this is tables, and I can't see a way to get that. Is this possible? One real-date export is taking 5 mins and that seems way too slow to me. -- Matthew Jones |
Fri, Jun 17 2016 8:50 AM | Permanent Link |
Roy Lambert NLH Associates ![]() | Matthew
>Is there a way to "get the plan" from a DBISAM Table component? I am >doing an export from DBISAM to JSON, and thus traversing a load of >tables. There are sub-tables linked with the MasterSource mechanism, >and also some where I do a Locate to find a value. > >If these were SQL, I'd ask for the plan, and would be able to see where >it says "non-optimal" and add the appropriate index to speed things up. >But this is tables, and I can't see a way to get that. Is this >possible? One real-date export is taking 5 mins and that seems way too >slow to me. The nearest you can get is to convert the filter into a query and run that. Make sure any of the fields used in links or locates have an index. If you're using a multi field index and VarArrayOf that can also slow things down (or at least it did in the neolithic when I used DBISAM) You don't say if this is on a local machine or over a network. If over a network than transport costs could be a large part of it. Running it locally should give an indication of that. Depending on how you're building the JSON and what size it is that could also have an impact. I sort of remember one component (a treeview) where I build a load of empty nodes and then populated them , setting the parent as I went. It sped the whole process up by a factor of 3 or 4. Sorry I can't be of more help. Roy Lambert |
Fri, Jun 17 2016 8:54 AM | Permanent Link |
Matthew Jones | Roy Lambert wrote:
> The nearest you can get is to convert the filter into a query and run > that. > > Make sure any of the fields used in links or locates have an index. > If you're using a multi field index and VarArrayOf that can also slow > things down (or at least it did in the neolithic when I used DBISAM) > > You don't say if this is on a local machine or over a network. If > over a network than transport costs could be a large part of it. > Running it locally should give an indication of that. > > Depending on how you're building the JSON and what size it is that > could also have an impact. I sort of remember one component (a > treeview) where I build a load of empty nodes and then populated them > , setting the parent as I went. It sped the whole process up by a > factor of 3 or 4. Thanks - that is very helpful really. Tells me not to bother worrying. This is an export to a new system (using WebBuilder front end) so it actually doesn't matter if it takes 5 mins as it is a one-off process. It is all local, so that isn't a concern. So long as I've not missed anything obvious, I'm happy. -- Matthew Jones |
Fri, Jun 17 2016 9:20 AM | Permanent Link |
Roy Lambert NLH Associates ![]() | Matthew
>Thanks - that is very helpful really. Tells me not to bother worrying. >This is an export to a new system (using WebBuilder front end) so it >actually doesn't matter if it takes 5 mins as it is a one-off process. >It is all local, so that isn't a concern. So long as I've not missed >anything obvious, I'm happy. Thought it might be EWB when you started using swearwords like JSON Roy |
Fri, Jun 17 2016 10:22 AM | Permanent Link |
Matthew Jones | Roy Lambert wrote:
> swearwords like JSON LOL. One day you too will be using it as your standard. It isn't ideal, but it works well for most purposes. You can always fall back to XML for more precision. -- Matthew Jones |
Fri, Jun 17 2016 11:25 AM | Permanent Link |
Roy Lambert NLH Associates ![]() | Matthew
>> swearwords like JSON > >LOL. One day you too will be using it as your standard. It isn't ideal, >but it works well for most purposes. You can always fall back to XML >for more precision. I do use it - I had to for my movies database - I updated my stringtable to cope with JSON and XML - squiggly brackets are a device of the devil! Roy |
Fri, Jun 17 2016 11:52 AM | Permanent Link |
Matthew Jones | Roy Lambert wrote:
> squiggly brackets are a device of the devil! I have a browser tab permanently at jsonlint.com for checking validity! -- Matthew Jones |
Fri, Jun 17 2016 5:28 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. ![]() | Matthew,
<< Is there a way to "get the plan" from a DBISAM Table component? I am doing an export from DBISAM to JSON, and thus traversing a load of tables. There are sub-tables linked with the MasterSource mechanism, and also some where I do a Locate to find a value. >> The quick answer is no. You can get an approximation for filters via this property, but not for Locates: http://www.elevatesoft.com/manual?action=viewprop&id=dbisam4&product=rsdelphi&version=XE&comp=TDBISAMDataSet&prop=FilterOptimizeLevel However, locates that don't use the active index *do* end up using a filter, so you could use this property along with an expression filter to approximate the result that you're looking for. Tim Young Elevate Software www.elevatesoft.com |
This web page was last updated on Wednesday, August 14, 2024 at 07:31 PM | Privacy Policy![]() © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? ![]() |