nvarchar (max) – wie man beschleunigt immer nur sinnvolle characterfolge in SQL

Ich habe einen Tisch mit einer Säule mit Nvarchar(Max) . Die Spalte ist 90% der time mit einer String-Länge zwischen 255 und 500. Einige gehen weit über 22000, die nicht als XML-XML von etwas, dass das Geschäft wird nie für die Berichterstattung Zweck verwendet werden. Jedenfalls, um eine lange Geschichte kurz zu schneiden war der beste path, um die überschüssige Masse zu schneiden. Ich habe das Übliche ausprobiert

 left(column,500) 

und

 substring(column,1,500) 

Ich habe die Zielspalte auf 500 Längen gesetzt. Allerdings lädt die Tabelle von der Quelle zum Zielziel eine Weile, nur weil dieser Spalte alleine. Ich mache das in SSIS in der Quelle. Ich bin auch in die Ausgangssäule gegangen und habe die Trunkierung ignoriert. Gibt es sowieso kann ich die time reduzieren, um diese Spalte zu laden. Diese methods scheinen so viel zu nehmen wie das Laden der ganzen Länge. Jeder Vorschlag wird sehr geschätzt.

NVARCHAR(MAX) (auch bei Verwendung einer function wie SUBSTRING oder LEFT ) kostet viel memory und füllt deine Puffer schnell. Überprüfen Sie die DefaultBufferMaxSize und auch die properties BLOBTempStoragePath und BufferTempStoragePath die sie auf einen optimalen Wert setzen, können die performance erhöhen, aber beachten Sie, dass Sie sie so entsprechend konfigurieren, weil es wie ein zweischneidiges Schwert ist.

Auch wenn Source und Destination auf verschiedenen servern sind, könnte das Netzwerk auch ein Problem sein, da alle data von Ihrem SQL server über das Netzwerk auf Ihren SSIS server zugreifen müssen. Sie könnten versuchen, die Netzwerkpaketgröße zu ändern

Weitere Informationen finden Sie in diesen Links

  • Setzen Sie BLOBTempStoragePath und BufferTempStoragePath auf Fast Drives
  • Fehlerbehebung bei der Paketleistung
  • Perfomance Ausgabe mit NVarchar (MAX) in SSIS