{"id":2280,"date":"2012-02-05T06:54:14","date_gmt":"2012-02-05T11:54:14","guid":{"rendered":"http:\/\/www.bytebot.net\/blog\/?p=2280"},"modified":"2012-02-05T06:54:19","modified_gmt":"2012-02-05T11:54:19","slug":"optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch","status":"publish","type":"post","link":"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch","title":{"rendered":"Optimising SQL applications by using client side tools by Mark Riddoch"},"content":{"rendered":"<p>Mark Riddoch of <a href=\"http:\/\/www.skysql.com\/\">SkySQL<\/a>.<\/p>\n<p>This was a talk about the future in general. What people would like. Etc. Not about something that exists yet, hence the sparse notes.<\/p>\n<p>Trace statements are good for the &#8220;why&#8221;. You move on to the debugger, but what is a useful SQL debugger? Profilers addresses the &#8220;when&#8221;.<\/p>\n<p>SQL developer tools: manually run queries (traditional route for development, effective way to test SQL statements, some indication of performance), server logs (alerts developers of serious issues like the slow query log &#8211; identify poorly written queries, requires server access, not effective in a cloud environment (?)), external monitoring (network sniffing of connection packets, Ethereal dissectors &#8211; allow individual connections to be traced, no server access, privileged network access, complex to interpret, possibility of packet loss), intrusive tools (insert &#8220;proxy&#8221; between client &amp; server to intercept all traffic, imposes delay &amp; requires setup modification).<\/p>\n<p>Client-side tools &#8211; client modification or hook via connectors (query logging, profiling). The Java connector has profiling. Should there be a connector slow query log? So there&#8217;s no requirement for server access and its per client rather than per server.<\/p>\n<p>Plans: roll out connector query logs for Java, C, and scripting languages built on Connector\/C. SQL Parser for report generation\/fuzzy matching. Create post-processing tools. Query log comparisons &#8211; detect fluctuation in execution time, plan flip alerting, replay log.<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"mailto:?subject=%5BShared%20Post%5D%20Optimising%20SQL%20applications%20by%20using%20client%20side%20tools%20by%20Mark%20Riddoch&body=http%3A%2F%2Fwww.bytebot.net%2Fblog%2Farchives%2F2012%2F02%2F05%2Foptimising-sql-applications-by-using-client-side-tools-by-mark-riddoch&share=email\" target=\"_blank\" title=\"Click to email a link to a friend\" data-email-share-error-title=\"Do you have email set up?\" data-email-share-error-text=\"If you&#039;re having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself.\" data-email-share-nonce=\"b5e4b26f30\" data-email-share-track-url=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch?share=email\"><span>Email<\/span><\/a><\/li><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-2280\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-2280\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-2280\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Mark Riddoch of SkySQL. This was a talk about the future in general. What people would like. Etc. Not about something that exists yet, hence the sparse notes. Trace statements are good for the &#8220;why&#8221;. You move on to the debugger, but what is a useful SQL debugger? Profilers addresses the &#8220;when&#8221;. SQL developer tools: [&hellip;]<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li class=\"share-email\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-email sd-button share-icon\" href=\"mailto:?subject=%5BShared%20Post%5D%20Optimising%20SQL%20applications%20by%20using%20client%20side%20tools%20by%20Mark%20Riddoch&body=http%3A%2F%2Fwww.bytebot.net%2Fblog%2Farchives%2F2012%2F02%2F05%2Foptimising-sql-applications-by-using-client-side-tools-by-mark-riddoch&share=email\" target=\"_blank\" title=\"Click to email a link to a friend\" data-email-share-error-title=\"Do you have email set up?\" data-email-share-error-text=\"If you&#039;re having problems sharing via email, you might not have email set up for your browser. You may need to create a new email yourself.\" data-email-share-nonce=\"b5e4b26f30\" data-email-share-track-url=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch?share=email\"><span>Email<\/span><\/a><\/li><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-2280\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-2280\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-2280\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/optimising-sql-applications-by-using-client-side-tools-by-mark-riddoch?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_options":[]},"categories":[23],"tags":[1332,1345],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4vJD-AM","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":2816,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2013\/11\/11\/mariadb-10-0-5-storage-engines-check-the-linux-packages","url_meta":{"origin":2280,"position":0},"title":"MariaDB 10.0.5 storage engines &#8211; check the Linux packages","date":"11\/11\/2013","format":false,"excerpt":"Today before Ivan's tutorial, he told me that in the 10.0.5 virtual machine images he created, he couldn't find the Cassandra storage engine. I told him it had to be installed separately, and this is true - you have to install some engines separately! When you do a yum install\u2026","rel":"","context":"In &quot;MariaDB&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":777,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2008\/04\/13\/gong-a-thong-at-lugradio-live-usa","url_meta":{"origin":2280,"position":1},"title":"Gong-A-Thong at LugRadio Live USA","date":"13\/4\/2008","format":false,"excerpt":"The very brave soul, was Aaron Bockover, from the Banshee media player fame (via the LugRadio Live USA 2008 weblog). There were a few interesting highlights from these gong-a-thong sessions... Zumastor Dan Kegel spoke about the Zumastor Linux Storage Project. Want snapshots and remote replication in your Linux filesystem? This\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1553,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2009\/06\/29\/the-fracas","url_meta":{"origin":2280,"position":2},"title":"The fracas","date":"29\/6\/2009","format":false,"excerpt":"Dear Nasrul, I've watched the vitriol on osdcmy-list, I've seen the attacks on Facebook, and on Twitter and I've read all the comments on the Open Malaysia blog, and I think its time I chime in. Firstly, I need to ask: do you know much about open source? I would\u2026","rel":"","context":"In &quot;General&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1464,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2009\/04\/22\/video-interview-with-microsofts-php-evangelist","url_meta":{"origin":2280,"position":3},"title":"Video: Interview with Microsoft&#8217;s PHP Evangelist","date":"22\/4\/2009","format":false,"excerpt":"I caught up with Zach Skyles Owens, a PHP Evangelist at Microsoft. If you missed the embed, watch the video. I have some sparse notes below. I learned some new things: Microsoft spends time working with the PHP community They are porting applications to work with an SQL Server backend\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":718,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2008\/02\/18\/ldap-vs-dbms-or-migrating-to-fedora-directory-server","url_meta":{"origin":2280,"position":4},"title":"LDAP vs. DBMS (or migrating to fedora directory server)","date":"18\/2\/2008","format":false,"excerpt":"Via the Fedora Miniconf, I attended Del Elson's talk on Migrating to Fedora Directory Server. Interesting scripts, and glue code was presented, the slides (verbose, good) are online, but there's no video :( Tiny amount of notes: LDAP vs. DBMS directory has one schema, one \"row\" type (\"object\"). RDBMS has\u2026","rel":"","context":"In &quot;Databases&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2259,"url":"http:\/\/www.bytebot.net\/blog\/archives\/2012\/02\/05\/how-to-offload-mysql-server-with-sphinx-by-vladimir-fedorkov","url_meta":{"origin":2280,"position":5},"title":"How to offload MySQL server with Sphinx by Vladimir Fedorkov","date":"5\/2\/2012","format":false,"excerpt":"Vladimir Fedorkov of Sphinx. Presentation started out with a very nice presentation of candies to all the audience members. What is Sphinx? Another (C++) daemon on your boxes. Can be queried via API (PHP, Python, etc.) or MySQL-compatible protocol and SQL queries (SphinxQL). Some query examples are in the slides,\u2026","rel":"","context":"In &quot;MySQL&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/2280"}],"collection":[{"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/comments?post=2280"}],"version-history":[{"count":2,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/2280\/revisions"}],"predecessor-version":[{"id":2282,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/2280\/revisions\/2282"}],"wp:attachment":[{"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/media?parent=2280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/categories?post=2280"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/tags?post=2280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}