Прежде всего, посмотрите на план запроса, чтобы увидеть, что он делает. Это скажет вам, если он использует индекс. Одна секунда для однострочного теста / вставки слишком медленная. Для 350 тыс. Строк этого достаточно для сканирования таблицы в кэшированной таблице.
Во-вторых. Посмотрите на физическое расположение вашего сервера. У вас есть что-то вроде журналов и данных на одном диске?
В-третьих, убедитесь, что столбцы индекса в вашем уникальном ключе находятся в том же порядке, что и предикат в запросе выбора. Различия в порядке могут запутать оптимизатор запросов.
В-четвертых, рассмотрим кластерный индекс по уникальному ключу. Если это ваш основной режим поиска строки, это уменьшит доступ к диску, так как данные таблицы физически хранятся с кластерными индексами. См. Это для объявления о кластерных индексах. Установите таблицу с большим коэффициентом заполнения.
Если у вас нет столбцов BLOB-объектов, 350 тыс. Строк намного ниже порога, в котором разделение должно иметь значение. Эта таблица размеров должна полностью помещаться в кеше.