Ich habe ein Verfahren wie dieses (vereinfacht):
CREATE PROCEDURE test @userName VARCHAR(64)
SELECT *
FROM member M
INNER JOIN order O
ON M.MemberId=O.MemberId
WHERE M.Username = @userName
In der Spalte Benutzername der Mitgliedstabelle befindet sich ein nicht gruppierter Index.
Der Plan-Cache zeigt eine implizite Konvertierung als solche:
Suchschlüssel [1]: Präfix: [MyDatabase]. [Dbo]. [Member] .Username = Skalaroperator (CONVERT_IMPLICIT (varchar (64), [@ Username], 0))
Ich habe mich nur gefragt, was diese implizite Konvertierung verursachen könnte, da sowohl der Parameter als auch der Felddatentyp "UserName" varchar (64) ist.
SP wird aus dem folgenden Framework aufgerufen:
EXEC test @Username=N'webSite.com'
Vielen Dank.
orderist auch ein Schlüsselwort und somit eine schreckliche Wahl für einen Tabellennamen (und viele würden argumentieren, dass eine Tabelle mit Bestellungen oder Mitgliedern keine einzelnen Namen haben sollte - dies lässt den Eindruck entstehen, dass sie immer nur genau eine Zeile enthalten werden).