Время выполнения SQL больше, если строка параметра является Unicode - PullRequest
0 голосов
/ 24 июня 2019

Я использую cherrypy для обработки запросов на получение, которые передают входной параметр (в основном, 32-битную строку), и я использую эту 32-битную строку для запроса таблицы в базе данных.Я заметил, что по умолчанию строка в Unicode, и выполнение запросов занимает более 2 секунд.Но если я закодирую строку в utf-8 и затем выполню запрос, время выполнения составит около 10 мс.Обратите внимание, что кодировка базы данных (mssql) - utf-8.

Есть идеи, почему это может происходить?

1 Ответ

0 голосов
/ 24 июня 2019

Это, вероятно, потому что, как вы упомянули, mssql требует utf-8 кодирования. Поэтому, когда вы запускаете 32-битную строку в качестве вашего запроса, сам сервер, вероятно, выполняет некоторую операцию приведения или преобразования с 32-битной до utf-8, что немного увеличивает время выполнения (по сравнению с простой отправкой в ​​правильном формате)

...