{"id":1135,"date":"2008-06-11T22:27:57","date_gmt":"2008-06-11T20:27:57","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/?p=1135"},"modified":"2008-07-16T19:10:20","modified_gmt":"2008-07-16T17:10:20","slug":"nun-doch-ein-bug-danke-itzik","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2008\/06\/11\/allgemein\/nun-doch-ein-bug-danke-itzik","title":{"rendered":"Nun doch ein Bug &#8211; Danke Itzik!"},"content":{"rendered":"<p><a href=\"http:\/\/www.glorf.it\/blog\/2008\/05\/16\/sql-talk\/sql-server-is-not-aware-of-nondeterministic-functions\">Neulich beschrieb ich<\/a> ein Problem in dem der SQL-Server-Optimizer den Zugriffsplan so w&#228;hlte, dass er ein anderes Ergebnis lieferte als erwartet. Die Ursache lag daran, dass er eine nicht-deterministische Funktion (d.h. Funktion liefert bei jedem Aufruf anderes Ergebnis) so behandelte wie eine deterministische (d.h. Funktion liefert bei gleichen Parametern immer den gleichen Wert). Der deutsche Microsoft-Support fand das sei kein Bug und <a href=\"http:\/\/www.glorf.it\/blog\/2008\/05\/13\/sql-server\/atemberaubende-arbeitszeiten-bei-microsoft\">wimmelte mich ab<\/a>. Wie ich erfuhr, musste der Mitarbeiter inzwischen Microsoft sehr kurzfristig verlassen. <\/p>\n<p>Ich wandte mich mit dem Problem inzwischen an <a href=\"http:\/\/www.sql.co.il\/\">Itzik Ben-Gan<\/a>, weil ich gerade sein <em>sehr gutes<\/em> Buch &quot;<a href=\"http:\/\/www.amazon.de\/Inside-Microsoft-SQL-Server-2005\/dp\/0735623139\">TSQL Querying<\/a>&quot; lese und gleich im ersten Kapitel angesprochen wird, dass der Optimizer gerne semantisch &#228;quivalente Zugriffspl&#228;ne ausw&#228;hlt. Das war nun eine Steilvorlage. Itzik hat sich sehr gr&#252;ndlich um das Problem gek&#252;mmert und bei Microsoft durchgesetzt, dass es ein Bug ist. Unglaublich &#8211; Danke!!!<\/p>\n<p>Hilfreich war dabei offenbar, dass sich der SQL-Server-2000 anders verhielt. Das habe ich Depp nat&#252;rlich nicht ausprobiert. Was ich nicht wusste: Solche Bugs sind &#246;ffentlich zug&#228;nglich und <a href=\"https:\/\/connect.microsoft.com\/SQLServer\/feedback\/ViewFeedback.aspx?FeedbackID=350485\">k&#246;nnen von Kunden bewertet werden<\/a>. Wenn viele Kunden den Bug als problematisch einstufen, dann wird er wahrscheinlicher gefixt. Leider braucht man dazu einen Microsoft-Account (Passport\/Live\/&#8230;).<\/p>\n<p>Daher <strong>meine Bitte<\/strong>: Wer so einen Account hat, den bitte ich gegen diesen Bug zu &quot;stimmen&quot;. <a href=\"https:\/\/connect.microsoft.com\/SQLServer\/feedback\/ViewFeedback.aspx?FeedbackID=350485\">Hier geht es lang<\/a> (auf die Sterne klicken).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Neulich beschrieb ich ein Problem in dem der SQL-Server-Optimizer den Zugriffsplan so w&#228;hlte, dass er ein anderes Ergebnis lieferte als erwartet. Die Ursache lag daran, dass er eine nicht-deterministische Funktion (d.h. Funktion liefert bei jedem Aufruf anderes Ergebnis) so behandelte wie eine deterministische (d.h. Funktion liefert bei gleichen Parametern immer den gleichen Wert). Der deutsche [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[48,49,929],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/1135"}],"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=1135"}],"version-history":[{"count":1,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/1135\/revisions"}],"predecessor-version":[{"id":1207,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/1135\/revisions\/1207"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=1135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=1135"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=1135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}