我使用休眠和數據庫是sqlserver。 SQL Server將支持Unicode的數據類型與僅支持ASCII的數據類型區分開來。例如,支持Unicode的字符數據類型是nchar,nvarchar,longnvarchar,其中ASCII計數器部分分別是char,varchar和longvarchar。默認情況下,無論SQL Server中定義的相應列的數據類型是否支持Unicode,所有Microsoft的JDBC驅動程序都將Unicode格式的字符串發送到SQL Server。在列的數據類型支持Unicode的情況下,一切都很流暢。但是,如果列的數據類型不支持Unicode,則在數據提取期間會出現嚴重的性能問題。在進行比較之前,SQL Server會嘗試將表中的非Unicode數據類型轉換爲unicode數據類型。而且,如果索引存在於非Unicode列上,它將被忽略。這將最終導致數據獲取期間的整個表掃描,從而大大減緩搜索查詢速度。與休眠和MS SQL服務器性能很慢
我們使用的解決方案是,我們發現有一個屬性叫做sendStringParametersAsUnicode,它有助於擺脫這種unicode轉換。此屬性默認爲'true',這使得JDBC驅動程序默認將每個Unicode格式的字符串發送到數據庫。我們關掉了這個屬性。
我的問題是現在我們不能在unicode轉換中發送數據。在將來,如果varchar的db列被更改爲nvarchar(只有一列不是所有varchar列),現在我們應該以unicode格式發送字符串。
請建議我如何處理場景。
謝謝。
嗨安娜塔夏爾馬,感謝您的回覆。如果您有任何其他鏈接或信息,該鏈接沒有任何內容。 – user755806