2010-11-05

Rubrik: Skurrile Fehlermeldungen zum Wochenende

Seit einiger Zeit arbeite ich mit einem Microsoft SQL Server 2008. Ich muss zugeben, dass ich noch nicht bis ins letzte Detail der Materie vorgedrungen bin, aber dennoch: Die Fehlermeldungen, die der Server so von sich gibt, sind alles andere als selbsterklärend.

Heutiges Beispiel:

Fehler im OLAP-Speichermodul: Ein doppelter Attributschlüssel wurde bei der Verarbeitung gefunden: Tabelle: dbo_dimVoucherCode, Spalte: Comment, Wert: . Das Attribut ist 'Comment'.

Nun gut, man kann sich da schon etwas drunter vorstellen: Das Attribut Comment enthält Werte, die nicht eindeutig sind. Das sehe ich ein. Verwunderlich ist lediglich, dass dieser Fehler aus dem Nichts auftaucht, aber wem glauben wir schon, wenn er sagt "Ich habe nichts geändert" ...

Was ich aber nicht verstehe, ist die Tatsache, das das Attribut an dieser Stelle auch gar nicht eindeutig sein muss - war es ja auch in der Vergangenheit nie!

A duplicate attribute key has been found when processing - ein Beitrag aus den Microsoft-Foren - geht auf diesen Fehler ein und Jeroen Schalken findet eine Lösung:
"In the end the solution was setting the TRIM to NONE on the key field. And leave the rest of the settings as set by AS2008. I can't think of an explenation."
Frei übersetzt so viel wie "Am Ende einer langen verzweifelten Reise, habe ich beim Key-Feld die Einstellung TRIM auf NONE gesetzt. [...] Ich kann mir nicht erklären, wieso das die Lösung ist."

Auch ich kann mir das nicht erklären, aber ich sehe, dass es funktioniert. Mit diesem ungelösten Geheimnis gehe ich jetzt ins Wochenende und vergesse die ganze Angelegenheit. Vielleicht stoße ich ja in ein paar Jahren wieder auf diesen Blog-Beitrag und belächle ihn, weil ich dann weiß, was da im Hintergrund des Servers so alles passiert. Bis dahin hilft er ja vielleicht auch dem ein oder anderen wie mir.

3 Kommentare:

Anonym hat gesagt…

Ich hatte die Fehlermeldung auch. Die Ursache waren NULL-Werte in der betreffenden Zeile. Analysis Service scheint durch die die NULLS durcheinander zu kommen. Also sollte unbedingt im ETL dafür gesorgt werden, dass keine NULLS in den Dimensionen vorhanden sind.

Unknown hat gesagt…

Ja, das klingt plausibel - danke für diesen Hinweis!

Anonym hat gesagt…

Hatte die selbe Fehlermeldung. Danke für den Hinweis mit den NULL Werten. Genau das war auch bei mir das Problem.