Support data in SQL Server

Issue #411 new
Martin Alejandro Liguori created an issue

Using XML is OK, but having every single platform and game, and description in the same file is nuts, this XML gets so big so fast that it causes massive performance slow downs very quickly on older systems (most of us use an old computer to make our arcade)

After 6000 games launchbox starts to get slower, on the 10000 mark it gets very slow.

Tested on a Core 2 Duo 3ghz, 3gb ram, windows 7 64 bits

Comments (17)

  1. Jason Carr repo owner

    Agreed that SQL is a better option. It makes sense to provide that as an option. Most people won't want to have to install or deal with a proper SQL Server database, but yes, it could help with performance issues.

  2. Martin Alejandro Liguori reporter

    SQL should be a lot easier to maintain, a lot easier to change if anything goes wrong, a it will make the front end a lot faster.

  3. Shades

    Personally i don't want to install SQL but I can see how it could help with performance. Is a possible to have separate XMLs for each platform to help reduce the size and speed up performance?

  4. Chris Gilbert

    I would love to see a SQL(lite?) solution here. I may be biased (since I use SQL day-to-day at work) but I would find it a lot easier to bulk update games with custom data (which could either be typed in, imported from Excel, Access or CSV.

    I am not a fan of the XML approach, especially since the tags aren't all consistent. I recently tried importing the XMLs in my own SQL server, updated some data, but found when I splatted it back out it was missing some info. This was because platforms, extra fields etc. were stored separately to the games - but were still in the same XML.

  5. Carl Paulino

    Yeah no sql server. Just use sqlite as it is built exactly for this purpose, as a local client side db (not as a db server). But only do this if you can verify a real performance improvement. If people are used to editing the xml file directly, I guess that would not make them happy unless using either is an option. So far, I haven't seen any need to modify the xml file manually, except maybe to do some bulk path changes?

  6. Hugo Tigre

    Just to add my experience with a big collection. XML is crazy slow, it really impacts on the user experience with this frontend. This is in my opinion the biggest problem with Launchbox.

    I think that 2 thinks need to be changed:

    1. Drop XML, a properly structure database (embedded) will have much better performance.

    2. Background operation. Launchbox is slow doing normal operation, for example, opening the settings GUI and closing it by choosing OK button, or by editing a game, it seems like Launchbox needs to reload all over again. Depending on the operation not everything needs to be reloaded, and probably many things could be happening in the background in a different Thread so that the UI doesn't block.

  7. Chris Gilbert

    To repeat a point I made in another thread, I would be interested to see whether if loading only 1 platform into memory at one time would improve the performance. Switching between platforms would be slow, but it may help with performance whilst navigating only one platform.

  8. Hugo Tigre

    Chris, that only makes sense if it would be an option in settings, because not everyone would like that setup, me being one of them.

    The performance issue needs to be fixed in a more seamless way, at least that's my opinion.

  9. Chris Gilbert

    Absolutely. I was thinking more of an option at startup. Choosing one or more systems to load when starting up. This would allow a complete database of info, but only using relevant sections (platforms) at a single time.

  10. Daniel Chadwell

    Implementing this would bring huge performance gains! Keep XML the default, but allow for adding SQL server as an option (ComicRack does this!). Supported you for two years, give me a reason for #3!!!

  11. PhuriousGeorge

    Is this still in the works? I don’t have near the largest library I’ve seen, but at 48,646 it’s really impacting the program. My load time is somewhere between 30-40 seconds and while I’ve got plenty of RAM I could let LB run in the background, I do prefer to close it between sessions.

  12. Chris Kant

    could this a big change also in performance and some other issues Launchbox is running more and more because of the bigger and bigger complexity?

  13. Martin Conroy

    It would also be great if this SQL database could be stored on a NAS so could be accessed from multiple devices and kept in sync, much like Kodi enables you to do.

  14. Log in to comment