1
A Comparative Study on the Relationship between Database Performance and the Results Count in Popular Database Management Systems
Abstract: The aim of this study is to conduct a comparative study on the database performance, and the impact of the result count to its performance in popular Database Management Systems (DBMS) like Microsoft SQL (MS SQL), MySQL and Microsoft Access (MS Access). In this study, the execution time of a given query in MS SQL, MS Access and MySQL, by utilizing a customarily implemented software. Based on the results received from that, and by considering it as a measurement of performance, the author has compared the performance of the above database management systems. Furthermore, this comparative study has researched on the impact that the result count makes on the performance of the database depending on the number of rows that the selected query has affected. The results clearly revealed that MS Access has the highest execution time, which ultimately means that it is the slowest. Hence, the performance of MS Access is very low, in comparison to MS SQL and MySQL. The performance of the MS SQL and MySQL cannot be accurately compared according to the received results. The performance of those two database management systems depends on the query it executes. None of them always stays ahead on another. According to the results, it can be clearly stated that there is a direct impaction of the result count, to the performance of the database management system. The execution time gets higher when there are many numbers of rows to be retrieved from the database. This ultimately means that the performance of a database management system gets lower when the result count increases. In the past years, the advances in technology have been leading to an exciting new applications of database systems. Currently, there are many proprietary and open source database management systems in the western world, and among them, Microsoft, International Business Machines (IBM) and Oracle can be considered as the leading triplet of the database industry. MySQL on the other hand this is the most popular open source database management system, which now belongs to Oracle Company. Considering the huge amount of data that roams within the business world, via these database management systems, it is essential to have an extra knowledge about the performance of them, in a comparative manner.
Index Terms – Database Management System, Database, Database Performance, DBMS, Open Source, Proprietary
I. INTRODUCTION The growth of technology has become a speedster. It happens in the blink of an eye, and it combines people from all corners in the world. This ultimately means sharing a huge amount of data, and in a world where technology has the lead run, data plays an important part. From the simplest home-based business to an organization with worldwide branch network, the importance of data remains the same, because the past, present and the future of a company relies on the data that runs through it. Therefore, handling data in good care, in a manner that it could be used in future managerial decisions is a vital task.
A database can be given as the best solution for the above scenario. A database can be simply defined as a collection or an assortment of data which are related to each other. A company, or the owner of a business can store data in a database, access or read data when necessary and also to modify them on various accounts. For an organization, a database can be given as a
compulsory component, and even for a small business it is the key of success, since it allows to manage all the data from its simplest level. Thus, database management systems were introduced to the world, by various companies under various names, and as mentioned previously IBM, Microsoft and Oracle, MySQL are the most popular database management systems among them. Open source or not, the popularity of these databases have affected people in both industrial as well as in academic level. Performance is a key measurement that helps to define the quality of any hardware or a software device, and the same applies to the database management systems. Microsoft entered the database industry in 1980s and by 1990s MySQL Server joined the force, and since the dawn of each of them, they have been able to release many versions of their database management systems. Microsoft SQL (MS SQL) Server 2016, Microsoft Access 2016 and MySQL Server 5.7.12 are the latest versions that are manufactured, respectively by Microsoft,
D. M. P Dananjaya Jayathilaka, Ali Syed, Member, IEEE, Azeem Mohammad, Malka N. Halgamuge, Senior Member, IEEE* School of Computing and Mathematics, Charles Sturt University, Melbourne, Victoria 3000, Australia Email: [email protected], [email protected], [email protected], [email protected]
2
Oracle, and MySQL. Each of this database management system has more abilities, modifications than the previous versions of them, and it can be clearly stated that the performance of them have been increased over the time as well. The time that they take to execute the query and retrieve the required results is much quicker than it used to be. The newest version of the Microsoft SQL Server, MS SQL 2016 appears to have real time analytics and the large queries that took 3048 seconds to execute in MS SQL Server 2014 takes only 3.83 seconds in the 2016 version. This is a performance improvement of 795x, which can be given as one of the many examples of the performance improvements of the database management systems to this date. Performance is an important factor to a database management system, since it is the place that stores, and maintains the company data in an organized manner, while retrieving the necessary data via queries at the required times. In order to make the processes done in an easier and a quicker manner, the queries should be executed within a less time and actively display or retrieve the data required by the query. Therefore, throughout this paper, the author has carried out a comparative study about the performance of the popular database management systems such as Microsoft SQL Server, Microsoft Access, and MySQL, while utilizing the query execution time as the measurement. Furthermore, the author has looked into the relationship between query execution time and the results count received by the particular query, to ensure whether such relationship exists, and if does, how it effects to the performance of the database as well.
The scholarly background that was conducted at the early stage of this research revealed several related works to the selected topic. Wu et al. (2015) has discussed about a method to predict the query execution time based on sampling, along with query re-optimization. In here, the sampling has been used as a validation step or a post-processing level action that only gets applied in the closing arrangement which rebounded by the query optimizer. The sampling techniques discussed in this dissertation states that it can be used for the clarification of the estimations in the cardinalities, and ultimately for the successiveness of predicting the query execution time. The ambiguity in the cardinality can also become quantifiable through this sampling method. This introduces a feedback loop to the query optimizer from the sampling, and it is capable of enhancing the final query plan which came as the outcome of the optimizer. This is done by using a procedure of iterative reoptimization.
Rao et al. (2013) has done a comparative study regarding the execution time in Oracle, Microsoft SQL Server and Microsoft Access relational databases. In here, the execution times are presented in milliseconds, microseconds and nanoseconds as well while utilizing a user friendly, Windows based software specifically implemented for this purpose. In the analysis process sample SELECT queries, DELETE queries and INSERT queries have been used in a selected database, providing same environment in all three Database Management Systems, and they have been used with the tool mentioned above. The application generates the time that was taken by each and every query, in each and every DBMS. In order to generate that time, it takes the start time of the given query execution, end time of
that query execution and calculates the difference between them in milliseconds, microseconds and nanoseconds. Wu et al. (2013) have discussed the usability of optimizer cost models when predicting query execution time in Database Management Systems. It states that a statistical method that is useful for developing a predictive model is a requirement in the Database Management Systems research field and the cost models that are being used for query optimization are not sufficient for the time prediction process of the queries. It challenges that the proper calibration for the optimizer’s cost models can be much effective than the usual optimizer’s cost models, and the evidence to support that argument has done in an analytical manner.
Wu et al. (2013) has studied the issues that concurrent and dynamic database workloads face when predicting the execution time of the queries. The solution is an analysis based, which initially utilizes the optimizer’s cost model for the determination purposes of the operations. This performs by the Input/output (I/O) and the Central Processing Unit (CPU), when executing each and every query that has been taken as test subjects. Subsequently, the execution time has been calculated by using a queuing model that integrates the evaluations done regarding the concurrent queries and make the predictions of their execution time. It states that the accuracy of the proposed method is higher than the machine learning techniques that can be applied in this kinds of scenarios.
Hasan et al. (2013) have addressed the issues that industry face while predicting the execution time of the Protocol and RDF Query Language (SPARQL). Machine learning techniques are the primary resources that have been used to address this issue, which ultimately predict the query execution time of SPARQL. In the experimental process, the algebra operators of SPARQL and the several graph pattern types that were generated as clustering the training SPARQL queries, have been used as the features in the SPARQL. The queries gathered from the query logs in DBPedia 3.8, have been used to provoke the training dataset. At the end, it suggests SPARQL as a fine query language, according to the successiveness of the results they have received throughout the process, as well as based on the query history.
Bassil et al. (2011) have conducted a comparative study on the performance of various database management systems based on the query execution time, Page file usage and the CPU usage. MS SQL Server 2008, Oracle 11g, IBM DB2, MySQL 5.5 and MS Access 2010 are the database management system software that has taken into consideration while using a simple computer application developed in C# language as the tester. It has revealed the execution time of each and every query provided to different database management systems mentioned above. As for benchmarking, Windows Task Manager (WTM) has been used, and it displays the Page file usage and the CPU usage when each and every query getting executed in various database management systems. According to the statistical data presented in histograms and charts, it reveals that MS Access 2010 is the least user of CPU while IBM DB2 is the most consumer of PC memory as well as the fastest database management system. But when considered in an overall
3
manner, it states that there is no ultimate winner. Chaudhuri et al. (2004) have discussed about an estimation of a progress, regarding the execution of Structured Query Language (SQL). Throughout the paper the authors have looked at the current issues that the industry has when providing an estimator for the growth in the executing process of SQL queries. It proposes a model that can be used as a progress estimation of SQL query execution while utilizing Microsoft SQL Server in its experimental procedure. In this analysis, each query has been considered as a function, which output number of rows as results according to each operator included in the execution plan of the query. The proposed solution can be applied for capricious SQL queries and furthermore implementing this model can be done in the existing databases that are in use, even in a low overhead manner.
The rest of the paper organized as follows. Section II describes the Materials and Methods that were used for this analysis. Section III contains the results received, along with the discussion of the results. Section IV carries the conclusion of the research.
II. MATERIALS & METHOD To determine the execution time of a given query, a tester was implemented. The tester is a simple application with a single interface. This application was implemented in C# language, using Visual Studio 2013 as the development environment.
This application has given the ability to take the date and time before the query execution, and the date and time when the query completed execution. Afterwards, it takes the difference between those date and time variable, which outputs the execution time mathematically. Figure 1 shows the interface of the tester software.
Figure 1 – Tester Software
The query can be written in the given text area, and there are three separate buttons to test the execution time of the query in MS Access, MS SQL Server and MySQL Server respectively. Once a button is clicked, according to the preference, it will display the execution time in milliseconds, selected database option, as well as the execution status, i.e whether the query execution is successful or not. The reason for implementing this
kind of third party software is to provide the similar testing environment to all the query executions that take place within this research.
The first query set was used to test the execution time, which ultimately represents the performance of the selected database. For this purpose, the author used a simple database developed by the author himself, as well as the Person database which comes as a part of Adventure Works 2008 database collection. The customarily made database that was used in this process was developed for a scenario of a Hotel Reservation System, and it was developed in both MS SQL and MySQL query languages. Figure 2 shows the structure of this database. It contains the following ten interconnected tables; Band, Room, Room Type, Facilities, Booking, Customer, Price, Payments, Booking_Rooms, and Band_Facilitis.
Figure 2 – Table structure of the Hotel Reservation database
The second query set was used to observe the relationship between the execution time and the results count that the query outputs when it gets executed. The same Person database in Adventure Works 2008 database collection, which was used in the previous process, and the tables in the customarily made Hotel Reservation System database were used in this procedure as well. The reason for choosing that database is that the observing process needs to retrieve a huge amount of data to determine the relationship between those two parties.
As mentioned previously, the testing was done for three database management systems. In here, Microsoft SQL Server 2012, and Microsoft Access 2013 were used under Microsoft Products, and as for MySQL, XAMPP Server v3.2.1 was used.
III. RESULTS The results of the queries that were used to examine the performance of the database (Query Set A), and to observe the relationship between query execution time and the result count that it retrieves (Query Set B) can be stated as follows.
A. Results of Query Set A Sample Query A-01 to A-05 were used on the customarily made Hotel Reservation System database. The execution time that was received after executing each query in MS SQL Server,
4
MS Access and XAMPP Server, with the aid of tester software, are stated separately in the given tables.
#Sample Query A-01
This query is a simple query that retrieves all the columns and the rows of the Customer table.
Query ID Execution Time MS SQL MS Access MySQL #A-01 21 ms 65 ms 2 ms Table 1 – Execution time of the sample query A-01
#Sample Query A-02
This query retrieves the selected columns given in the SELECT clause, from both Booking and Customer tables, but only the selected details of the customers who are from United States of America (USA).
Query ID Execution Time MS SQL MS Access MySQL #A-02 20 ms 67 ms 2 ms Table 2 – Execution time of the sample query A-02
#Sample Query A-03
The following query retrieves the description column, as BandType, and the load, from the Facilities, Band and Band_Facilities tables where the load is equal to 4 or 6.
Query ID Execution Time MS SQL MS Access MySQL #A-03 21 ms 88 ms 23 ms Table 3 – Execution time of the sample query A-03
#Sample Query A-04
This query retrieves the selected columns from the Customer table, where the country is ‘USA’ and the town is ‘Brooklyn’ or ‘New York’.
Query ID Execution Time MS SQL MS Access MySQL #A-04 21 ms 68 ms 2 ms Table 4 – Execution time of the sample query A-04
#Sample Query A-05
The following query retrieves all the columns from the Facilities table, where it has stated the word ‘Complimentary’ along with its description.
Query ID Execution Time MS SQL MS Access MySQL #A-05 20 ms 66 ms 2 ms Table 5 – Execution time of the sample query A-05
#Sample Query A-06
Sample Query A-06 to A-09 were used on the Person database in Adventure Works 2008 database collection. It is essential to note that these four queries are much complex than the previous ones since they combine many tables, searches many columns and rows, uses many operators, as well as loads a large amount of data records from the Person database.
In the same manner, as it was in the previous queries, the execution time of each query has presented in the given tables.
The following query retrieves all the columns in the SalesOrderDetail table, where the SalesOrderDetailID is stated as ‘73845’.
Query ID Execution Time MS SQL MS Access MySQL #A-06 31 ms 392 ms 15 ms Table 6 – Execution time of the sample query A-06
#Sample Query A-07
SELECT * FROM Customer
SELECT b.bookingID, c.firstName, c.lastName, c.country FROM Booking b, Customer c WHERE b.customerID = c.customerID AND country = 'USA’
SELECT DISTINCT b.description AS BandType, b.load FROM Facilities f, Band b, Band_Facilities bf WHERE b.bandID = bf.bandID AND b.load = 4 OR b.load = 6
SELECT title, firstName, lastName, country, town FROM Customer WHERE country = 'USA' AND (town = 'Brooklyn' OR town= 'New York')
SELECT * FROM Facilities WHERE description LIKE '%Complimentary%'
SELECT * FROM Sales.SalesOrderDetail WHERE SalesOrderDetailID = 73845
5
This query retrieves the Name column from the Product table where the Name is given as 'Long-Sleeve Logo Jersey’ in the ProductModel table.
Query ID Execution Time MS SQL MS Access MySQL #A-07 15 ms 93 ms 15 ms Table 7 – Execution time of the sample query A-07
#Sample Query A-08
The following query has used several operators such as AVG (average), MAX (maximum), and >= (large or equal) along with the WHERE and GROUP BY clause.
Query ID Execution Time MS SQL MS Access MySQL #A-08 31 ms 109 ms 78 ms Table 8 – Execution time of the sample query A-08
#Sample Query A-09
This query carries out a calculation, and outputs the results of the calculation into a column, along with the other required columns. It has used the Product table and the SalesOrderDetail tables and displays the values in the ascending order. This can be considered as the most complex query that was used as the test subjects.
Query ID Execution Time MS SQL MS Access MySQL #A-09 1749 ms 7243 ms 5552 ms Table 9 – Execution time of the sample query A-09
The results of the test query in Query Set A that were used to examine the performance of the various database management systems can be arranged into a single table as follows (Table 17).
Query ID Execution Time (Milliseconds -ms) MS SQL MS Access MySQL A-01 21 65 2 A-02 20 67 2 A-03 21 88 23 A-04 21 68 2 A-05 20 66 2 A-06 31 392 15 A-07 15 93 15 A-08 31 109 78 A-09 1749 7243 5552 Table 10 – Execution times of Query Set A
This data set can be plotted on to a bar chart as follows (Figure 3). The X axis represents the query ID, and the Y axis represents the execution time that each database management system has taken.
Figure 3 – Execution Time of Query Set A (Bar Chart)
The results received from Query Set A clearly depicts that the Microsoft Access database management system takes a longer time to execute the queries than MS SQL and MySQL. When considering the execution times that MS SQL and MySQL has taken, there is a huge difference between MS Access and them. This indicates that the performance of the MS Access is much lower than the performance of MS SQL Server and MySQL. In each query, the Orange color line that indicates the execution time of the MS Access database management system lies within higher values. This means that the time that it takes to execute the queries is way higher than MS SQL and MySQL, which ultimately means that its performance is lower than the other two database management systems.
When considering the results received as the execution times in MySQL and MS SQL, it is important to note that there is no winner that can be clearly spotted. The two database management systems react differently towards different queries. These execution times of MySQL and MS SQL can be illustrated in a bar chart as follows (Figure 4). The X axis
SELECT DISTINCT Name FROM Production.Product WHERE ProductModelID IN (SELECT ProductModelID FROM Production.ProductModel WHERE Name LIKE 'Long-Sleeve Logo Jersey%')
SELECT p1.ProductModelID FROM Production.Product AS p1 GROUP BY p1.ProductModelID HAVING MAX(p1.ListPrice) >= ALL (SELECT AVG(p2.ListPrice) FROM Production.Product AS p2 WHERE p1.ProductModelID = p2.ProductModelID)
SELECT 'Total income is', ((OrderQty * UnitPrice) * (1.0 - UnitPriceDiscount)), ' for ', p.Name AS ProductName FROM Production.Product AS p INNER JOIN Sales.SalesOrderDetail AS sod ON p.ProductID = sod.ProductID ORDER BY ProductName ASC
6
represents the query ID, and the Y axis represents the execution time taken by each database management system, towards each query.
Figure 4 – Execution Times of MySQL and MS SQL
As Figure 4 illustrates, none of these database management systems stays ahead of the other. Towards some queries, MySQL has performed better than MS SQL, and in others MS SQL has performed better than MySQL. Hence, it is essential to note that the performance of these two database management systems depends on the query that it executes.
B. Results of Query Set B The purpose of testing this query set is to observe whether there is a relationship between the query execution time, and the results count, or else in other words, the number of rows that it loads as results once a particular query is executed. The same tester software was used to determine the query execution time in different database management systems. In order to get the number of rows or entries that are being effected by a certain query, the author manually executed the query inside the selected database management systems, and examined the number of rows that it displays as results. It is essential to note that in this process, very simple queries were used as test subjects, because it makes easier to examine the relationship between the given two parties in an easier manner. The outputs that were received as the execution time and results count, are given in the tables.
#Sample Query B-01
Sample Query B-01 to B-03 were used on the customarily made Hotel Reservation System database.
The Query B-01 retrieves all the columns and rows from the Price table.
Query ID Execution Time MS SQL MS Access MySQL #B-01 21 ms 65 ms 2 ms Number of entries effected = 14
Table 11 – Execution time and the results count of query B01
#Sample Query B-02
The Query B-02 retrieves all the columns and rows from the Payments table.
Query ID Execution Time MS SQL MS Access MySQL #B-02 21 ms 66 ms 2 ms Number of entries effected = 19 Table 12 – Execution time and the results count of query B02
#Sample Query B-03 The Query B-03 retrieves all the columns and rows from the Room table.
Query ID Execution Time MS SQL MS Access MySQL #B-03 21 ms 68 ms 2 ms Number of entries effected = 25 Table 13 – Execution time and the results count of query B03
#Sample Query B-04
Sample Query B-04 to B-07 were used on the Person database in Adventure Works 2008 database collection. The following query retrieves all the records from the ProductPhoto table.
Query ID Execution Time MS SQL MS Access MySQL #B-04 39 ms 84 ms 23 ms Number of entries effected = 101 Table 14 – Execution time and the results count of query B04
#Sample Query B-05
This query retrieves all the records from Employee table.
SELECT * FROM Price
SELECT * FROM Payments
SELECT * FROM Room
SELECT * FROM ProductPhoto
SELECT * FROM Employee
7
Query ID Execution Time MS SQL MS Access MySQL #B-05 32 ms 85 ms 15 ms Number of entries effected = 290 Table 15 – Execution time and the results count of query B05
#Sample Query B-06
This query retrieves all the records from Address table.
Query ID Execution Time MS SQL MS Access MySQL #B-06 603 ms 963 ms 615 ms Number of entries effected = 19614 Table 16 – Execution time and the results count of query B06
#Sample Query B-07
The following query retrieves all the records from the SalesOrderDetails table.
Query ID Execution Time MS SQL MS Access MySQL #B-07 2167 ms 6097 ms 4405 ms Number of entries effected = 121317 Table 17 – Execution time and the results count of query B07
The results received from query set B were used to examine whether there is a relationship between the query execution time and the result count it retrieves. The result count was measured by the number of rows, records or entries that each query loads when the query gets executed. Table 18 represents the query IDs, execution times taken by each database management system, and the results count each query produced.
Query ID Execution Time (Milliseconds -ms) Number of entries MS SQL MS Access MySQL B-01 21 65 2 14 B-02 21 66 2 19 B-03 21 68 2 25 B-04 39 84 23 101 B-05 32 85 15 290 B-06 603 963 615 19614
B-07 2167 6097 4405 121317 Table 18 – Results of Query Set B
When observing the execution time and the number of entries that each query produce, it can be clearly stated that when the number of entries get increased, the time taken by the database management system to execute the query gets increased as well. To illustrate that statement in a more identifiable manner, the author has plotted the above data into three charts (one chart to each database management system), where the X axis represents the query ID and the Y axis represents the execution time and the number of entries.
Figure 5 – Results Count and execution time in MS SQL
As Figure 5 illustratates, when the result count increases in MS SQL, the execution time increases along with it. The same scenario can be seen in MS Access and MySQL as well. They are represented in Figure 6 and 7, respectively.
Figure 6 – Results Count and execution time in MS Access
SELECT * FROM Address
SELECT * FROM SalesOrderDetails
8
Figure 7 – Results Count and execution time in MySQL
IV. CONCLUSION A comparative study on the performance levels of MS Access, MS SQL and MySQL has been investigated based on the query execution time, while illustrating that there is a relationship between the result count and the query execution time. The results revealed as the performance of selected database management systems are quite similar to the results received in the comparative study conducted in the literature. Both studies proved that the performance of MS Access DBMS is very low, in comparison to MySQL and MS SQL. It is hard to define a clear winner between MS SQL and MySQL, as they response differently to different queries. On the other hand, it is important to note that the result count clearly makes an impact on the query execution time. We observed the count rises, with the query execution time. As future work, the author hope to extend this research where it compares the performance with several other DBMS platforms like Oracle, and IBM etc.
REFERENCES [1] "A Timeline of Database History | QuickBase", Quickbase.intuit.com, 2016. [Online]. Available: http://quickbase.intuit.com/articles/timeline-of-databasehistory. [Accessed: 04- May- 2016].
[2] C. Mullins, "A Quick Look at the Open Source DBMS Market", Database Trends and Applications, 2010. [Online]. Available: http://www.dbta.com/Columns/DBA-Corner/AQuick-Look-at-the-Open-Source-DBMS-Market-61233.aspx. [Accessed: 10- May- 2016].
[3] V. Vidanapathirana, M. Nanayakkara, A. Attanayake, V. Abenayan, P. Dhanushka and D. Dhammearatchi, "Possible Solutions for the Drawbacks of Data Center Security Mechanisms", http://www.ijsrp.org, 2016. [Online]. Available: http://www.ijsrp.org/research-paper-0416.php?rp=P525226. [Accessed: 06- May- 2016].
[4] "Microsoft SQL Server", Wikipedia, 2016. [Online]. Available: https://en.wikipedia.org/wiki/Microsoft_SQL_Server#Genesis. [Accessed: 09- May- 2016].
[5] "MySQL", Wikipedia, 2016. [Online]. Available: https://en.wikipedia.org/wiki/MySQL#History. [Accessed: 09- May- 2016].
[7] "Microsoft SQL Server Version List", Sqlserverbuilds.blogspot.com, 2016. [Online]. Available: http://sqlserverbuilds.blogspot.com/. [Accessed: 10- May- 2016].
[8] "What's new in Access 2016 - Access", Support.office.com, 2016. [Online]. Available: https://support.office.com/enus/article/What-s-new-in-Access-2016-76454345-f85d-47aface1-98a456cb3496. [Accessed: 22- May- 2016].
[9]"MySQL: Download MySQL Community Server", Dev.mysql.com, 2016. [Online]. Available: https://dev.mysql.com/downloads/mysql/. [Accessed: 10- May- 2016].
[10]"Announcing Real-Time Analytics with SQL Server 2016: Our Performance Test Results", Tableau Software, 2016. [Online]. Available: http://www.tableau.com/about/blog/2016/3/announcing-realtime-analytics-sql-server-2016-our-performance-test-results51385. [Accessed: 12- May- 2016].
[11] W. Wu, Sampling based query execution time prediction and query re-optimization, 1st ed. Wisconsin: university of Wisconsin-Madison, 2015.
[12] V. Subba Rao, V. Rao and P. Sammulal, Estimation of Query Execution Time in Milli Seconds, Micro Seconds and Nano Seconds for Oracle, MsSQL and MsAccess Relational Databases, 1st ed. International Journal of Computer Applications, 2013.
[13] W. Wu, Y. Chi, S. Zhu and J. Tatemura, Predicting Query Execution Time: Are Optimizer Cost Models Really Unusable?, 1st ed. Brisbane: IEEE 29th International Conference - Data Engineering (ICDE), 2013.
[14] W. Wu, Y. Chi, H. Hacıg¨um¨us and J. Naughton, Towards Predicting Query Execution Time for Concurrent and Dynamic Database Workloads, 1st ed. Wisconsin: VLDB Endowment, 2013.
[15] R. Hasan and F. Gandon, "Predicting SPARQL Query Execution Time and Suggesting SPARQL Queries Based on Query History", Hal.inria.fr, 2016. [Online]. Available: https://hal.inria.fr/hal-00880314/document. [Accessed: 04- May- 2016].
[16] Y. Bassil, A Comparative Study on the Performance of the Top DBMS Systems, 1st ed. 2011.
[17] S. Chaudhuri, V. Narasayya and R. Ramamurthy, Estimating Progress of Execution for SQL Queries, 1st ed. Wisconsin, 2004.