0

I am currently in the process of upgrading our schools website.

I am trying to figure out which datasource will best fit our needs.

Pretty much all content will be data driven as it needs to be editable by management.

Data currently resides on mssql server

My idea is to primarily use xml and parse it server side and update it nightly or upon request from the database

Speed is an issue for us especially during peak enrolment times.

My research to date has been inconclusive as my findings vary greatly. People seem to not be decided on a best practice.

Your input would be greatly appreciated.

UltimateVenom
  • 45
  • 1
  • 7

1 Answers1

1

Well, although this question is quite broad to answer without knowing your exact needs, I'd still stick to a database as xml is not particularly designed for data storage.

XML was initally designed to structure, deposit, and transport information. I personally use XML wherever I need to store information about settings for my particular project.

Databases on the other hand was designed specifically for the same reasons of your needs. Do not underestimate the power of databases. Especially SQL Server. It is highly capable of handling multiple transactions with huge amount of data. Especially, in your case, you will need data that is 'relational'. How would you go about that by using XML? Not to mention, you will need a great source of CPU power to parse all those records.

If also, speed is important, your best bet will be to use a database. Poke me if you intend to share more information about the structure of your data, so I can prove database is 'the' choice to go!

Subliminal Hash
  • 13,614
  • 20
  • 73
  • 104
  • I did realize this question was quite broad, but wasn't to sure how to narrow it down. You are quite right, the data is most defiantly relational, and not small by any means. although, for our website this is obviously not as huge as our internal web application (which uses SQL for everything). CPU power (web server and database server rarely go over 5% CPU usage) is not really an issue, servers are more than overkill for there use. However in our internal application it does seem to get bogged down when 900+ users are connecting and making constant transactions. – UltimateVenom Feb 19 '14 at 09:05
  • with 1000's of tables, with 100's of which contain over 10,000 records and a few which reach the millions. again the website is obviously no where near that complex, but led me to believe there may be a better / faster solution. The website will access the same MS SQL server. The website will mainly be pulling back text to display, but in some cases may pull back more complicated information (EG. Location list with phone numbers) If there is any other info you need please let me know. – UltimateVenom Feb 19 '14 at 09:13
  • @UltimateVenom if 900+ users are slowing down your application, then I'd personally go through and investigate any problems/flows within the application itself. There are various testing tools to do just that. I run and manage websites with more than 400-500 simultaneous users perfectly handled with couple of milliseconds response times. I'd like to draw your attention that I'm talking about websites not apps residing on a local network server. So, your problem is probably within code and not the DB. Stick with databases is my final opinion. – Subliminal Hash Feb 19 '14 at 10:06
  • Thank you. I have some thoughts, It may be our connection to the outside world, or possibly even the link between web server and db server, but I will have to talk with our network technician. although at the end of the day it could be the code. what do you recommend on attempting to find where the bottle neck is? – UltimateVenom Feb 19 '14 at 22:28
  • You can use sql server profiler to find out what kind of queries your database is receiving and how long it takes to process a query. (By the way use stored procedures whereever possible) On the coding side, I think it depends on what software you are using to build your project. But I presume you are using .NET for which Visual Studio has great tools for creating unit tests. – Subliminal Hash Feb 20 '14 at 07:36
  • Thanks for all your help, upon test after test, it appears to be our connection to the outside world making things slow, longest running sql query was 121ms, most of which were less than ms2. made a test app, ran on our server, then ran on another and it was pretty much instant load vs 5-15 seconds. – UltimateVenom Feb 20 '14 at 10:30