Я пишу небольшое тестовое приложение, которое подключается к базе данных SQL Server, в которой есть две таблицы. Таблица 1 представляет собой список данных с не уникальным ключом, который указывает на несколько строк в таблице 2. В настоящий момент то, что я делаю, пересекает каждую запись в таблице 1, а затем получает соответствующие записи из Таблицы 2 с отдельным запросом. В таблице 2 содержится более 26 миллионов записей, и этот процесс занимает очень много времени. Данные в Таблице 1 могут содержать всего несколько сотен записей в нем или что-то около 1 миллиона.ADO.NET SQL Query Join?
Есть ли способ ускорить этот доступ к данным? Возможно, используя соединение таблицы, чтобы получить все данные в одном запросе? Или что-нибудь еще?
Извините, я не могу опубликовать таблицы базы данных или текущий код, поскольку я под NDA, поскольку это очень чувствительные данные. Текущий код в любом случае не имеет значения, поскольку я ищу совершенно новый (и лучший) способ сделать это.
Обратите внимание, что я использую ADO внутри .NET с C#.
EDIT: Я нормально выполняю JOIN-запрос, но спрашиваю, будет ли это более эффективным с ADO? Я знаю, что это будет более эффективно, но не уверен, справится ли это с ADO. Также ищем пример кода C# для этого. Благодарю.
Это очень просто; вы можете использовать внутренний оператор соединения между обеими таблицами. С другой стороны, в худшем случае вы пытаетесь загрузить в память 100 * 26 миллионов строк. Сколько строк вы ожидаете, что запрос будет возвращен в целом (сколько строк вы действительно получаете из Table2?) – dash
В Таблице 2, вероятно, будет около 8-10 строк в таблице. – Jonnster