{"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":"https:\/\/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","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","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[23],"tags":[1332,1345],"class_list":["post-2280","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-fosdem","tag-mark-riddoch"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/p4vJD-AM","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/2280","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/comments?post=2280"}],"version-history":[{"count":2,"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/2280\/revisions"}],"predecessor-version":[{"id":2282,"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/posts\/2280\/revisions\/2282"}],"wp:attachment":[{"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/media?parent=2280"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/categories?post=2280"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bytebot.net\/blog\/wp-json\/wp\/v2\/tags?post=2280"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}