Database Application Developer Tools Using Static Analysis and Dynamic Profiling - Chaudhuri, Surajit; Narasayya, Vivek; Syamala, Manoj (IEEE Data Eng. Bull., 2014)
Database application developers use data access APIs such as ODBC, JDBC and ADO.NET to execute SQL queries. Although modern program analysis and code proﬁlers are extensively used during application development, there is a signiﬁcant gap in these technologies for database applications because these tools have little or no understanding of data access APIs or the database system. In our project at Microsoft Research, we have developed tools that: (a) Enhance traditional static analysis of programs by leveraging understanding of database APIs to help developers identify security, correctness and performance problems early in the application development life cycle. (b) Extend the existing DBMS and application proﬁling infrastructure to enable correlation of application events with DBMS events. This allows proﬁling across application, data access and DBMS layers thereby enabling a rich class of analysis, tuning and proﬁling tasks that are otherwise not easily possible.