{"id":6371,"date":"2011-06-30T19:42:21","date_gmt":"2011-06-30T17:42:21","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/?p=6371"},"modified":"2011-06-29T21:47:44","modified_gmt":"2011-06-29T19:47:44","slug":"lesetipp-zu-skalaren-funktionen","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2011\/06\/30\/sql-talk\/sql-server\/lesetipp-zu-skalaren-funktionen","title":{"rendered":"Lesetipp zu skalaren Funktionen"},"content":{"rendered":"<p>In dem Artikel &quot;<a href=\"http:\/\/blogs.msdn.com\/b\/sqlcat\/archive\/2011\/06\/24\/unintended-consequences-of-scalar-valued-user-defined-functions.aspx\">Unintended Consequences of Scalar -Valued User Defined Functions<\/a>&quot; des &quot;Microsoft SQL Server Development Customer Advisory Teams&quot; wird ein g&#228;ngiges Performanceproblem mit skalaren Funktionen beschrieben. <\/p>\n<p>Leider wird nicht erw&#228;hnt, dass eine Umwandlung der skalaren Funktion in eine Table-Valued-Function (TVF) hier Abhilfe schaffen kann. Eine Erkenntnis, die ich meinem Kollegen Diethard verdanke: Da hier ein Join durchgef&#252;hrt wird, ist die Performance in der Regel deutlich besser. So lange die Funktionen eine gewisse Komplexit&#228;t nicht &#252;bersteigen, k&#246;nnen sie mit vertretbarem Aufwand in eine TVF umgewandelt werden. Das hat zugleich den Vorteil, dass die Entwickler nicht mehr in Einzels&#228;tzen denken, sondern in Mengen denken m&#252;ssen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In dem Artikel &quot;Unintended Consequences of Scalar -Valued User Defined Functions&quot; des &quot;Microsoft SQL Server Development Customer Advisory Teams&quot; wird ein g&#228;ngiges Performanceproblem mit skalaren Funktionen beschrieben. Leider wird nicht erw&#228;hnt, dass eine Umwandlung der skalaren Funktion in eine Table-Valued-Function (TVF) hier Abhilfe schaffen kann. Eine Erkenntnis, die ich meinem Kollegen Diethard verdanke: Da hier [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[16],"tags":[],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/6371"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=6371"}],"version-history":[{"count":2,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/6371\/revisions"}],"predecessor-version":[{"id":6375,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/6371\/revisions\/6375"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=6371"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=6371"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=6371"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}