Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann die Ersetzungsfunktion in der CLR-Funktion verbessert werden?

Versuchen Sie, StringBuilder.Replace zu verwenden stattdessen.

Sollte Leistung deutlich verbessern.

Dies gilt wie ein string.Replace(..) Ersatz und nicht für regex Anrufe. Aber anscheinend liegt der Flaschenhals in string Anrufe.

BEARBEITEN :

Beispiel (Pseudocode ):

char[] c = new char[]{'.', ' '}; 
Value = Value.Trim(c);
var sb = new StringBuilder(Value);   

sb.Replace("'", "");
sb.Replace(")", " ");
sb.Replace("(", " ");
sb.Replace("-", " ");
sb.Replace("_", " ");
sb.Replace("רח", "");