Interactive Demonstration of SQLCHECK

We will demonstrate a prototype of sqlcheck, a holistic toolchain for automatically finding and fixing anti-patterns in database applications. The advent of modern database-as-a-service platforms has made it easy for developers to quickly create scalable applications. However, it is still challenging for developers to design performant, maintainable, and accurate applications. This is because developers may unknowingly introduce anti-patterns in the application’s SQL statements. These anti-patterns are design decisions that are intended to solve a problem, but often lead to other problems by violating fundamental design principles. sqlcheck leverages techniques for automatically: (1) detecting anti-patterns with high accuracy, (2) ranking them based on their impact on performance, maintainability, and accuracy of applications, and (3) suggesting alternative queries and changes to the database design to fix these anti-patterns. We will demonstrate that sqlcheck enables developers to create more performant, maintainable, and accurate applications. We will show the prevalence of these anti-patterns in a large collection of queries and databases collected from open-source repositories. PVLDB Reference Format: Arthita Ghosh, Deven Bansod, Arpit Narechania, Prashanth Dintyala, Su Timurturkan, and Joy Arulraj. Interactive Demonstration of SQLCheck. PVLDB, 14(12): 2779-2782, 2021. doi:10.14778/3476311.3476343

[1]  Gerhard Weikum,et al.  Unbundling Transaction Services in the Cloud , 2009, CIDR.

[2]  Carlo Curino,et al.  Relational Cloud: a Database Service for the cloud , 2011, CIDR.

[3]  Diomidis Spinellis,et al.  Smelly Relations: Measuring and Understanding Database Schema Quality , 2017, 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[4]  Other Contributors Are Indicated Where They Contribute Python Software Foundation , 2017 .

[5]  Raghu Ramakrishnan,et al.  Database Management Systems , 1976 .

[6]  Bill Karwin,et al.  SQL Antipatterns: Avoiding the Pitfalls of Database Programming , 2010 .

[7]  Marcelo Soares Pimenta,et al.  Twenty years of object-relational mapping: A survey on patterns, solutions, and their implications on application design , 2017, Inf. Softw. Technol..

[8]  Alvin Cheung,et al.  StatusQuo: Making Familiar Abstractions Perform Using Program Analysis , 2013, CIDR.

[9]  Alvin Cheung,et al.  Leveraging Lock Contention to Improve OLTP Application Performance , 2016, Proc. VLDB Endow..

[10]  Antony J. Williams,et al.  Beautiful Data: The Stories Behind Elegant Data Solutions , 2009 .

[11]  Joy Arulraj,et al.  SQLCheck: Automated Detection and Diagnosis of SQL Anti-Patterns , 2020, SIGMOD Conference.

[12]  Alvin Cheung,et al.  Using Program Analysis to Improve Database Applications , 2014, IEEE Data Eng. Bull..

[13]  Alvin Cheung,et al.  How not to Structure Your Database-Backed Web Applications: A Study of Performance Bugs in the Wild , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE).

[14]  S. Sudarshan,et al.  Program Transformations for Asynchronous and Batched Query Submission , 2014, IEEE Transactions on Knowledge and Data Engineering.

[15]  George Strawn,et al.  Data Scientist , 2016, IT Professional.