Допустим, у меня есть таблица «Персоны», и у каждого человека есть имя, отчество и фамилия.
У меня есть текстовый файл с сотнями людей, и мне нужно получить строку базы данных каждого человека из базы данных. Я должен сделать это в течение ограниченного времени, это не может занять более нескольких секунд.
В общем, предположим, что у меня большой случайный список значений и я не могу легко сделать предложение WHERE, чтобы захватить все их, поскольку они равномерно распределены по данным и миллионы строк.
Есть ли "хороший" способ сделать это на различных SQL серверах? Я знаю только два способа:
Первый из них оказывается очень медленным, а второй работает, но затрудняет использование параметров, так как в конечном итоге вам придется выполнить @PARAM1
, @PARAM2
и так до бесконечности. Это также приводит к ограничению параметров, когда вы выбираете более тысячи строк (каждая строка не имеет ни одного номера / идентификационного ключа)
Для контекста это для SQL Server / C#, но я хотел бы знать, существует ли более общее / кроссплатформенное решение.
Также может быть полезен какой-то способ обновления, если он будет отличаться от выбора
Я понимаю, что параметры табличных значений - это вещь, но я не могу добавить дополнительные значения или определения на сервер SQL, чтобы использовать их для запросов, которые я пытаюсь выполнить, я могу контролировать только то, что происходит в моей программе.