Приложение выполняет сложный SQL-запрос - PullRequest
1 голос
/ 05 января 2009

Мое приложение должно выполнить довольно сложную серию запросов к базе данных. Обычно я просто помещаю все в хранимую процедуру и выполняю ее таким образом.

Но у меня нет доступа к базе данных, к которой я пытаюсь получить доступ, поэтому я не могу создать хранимую процедуру. Есть ли лучший способ сделать это, вместо того, чтобы поразить базу данных 5-6 раз, чтобы получить результаты, которые мне нужны? Я мог бы объединить все в один запрос, но я хотел бы избежать этого, если это возможно, поскольку мне нужно объединить около 10 таблиц.

Ответы [ 3 ]

5 голосов
/ 05 января 2009

Нет ничего плохого в том, чтобы объединить 10 таблиц, если это в конечном итоге то, что вам нужно сделать. Обычно SQL хорош в таких вещах. Однако, если между вашими 5-6 запросами нет сильной связи, запустите их отдельно.

Если вы решите разбить запрос, то попадание в БД 5-6 раз вполне нормально - в этом нет ничего плохого. Ваш метод доступа (например, ADO.NET), вероятно, в любом случае дает вам пул соединений бесплатно, поэтому накладные расходы на несколько запросов очень малы.

1 голос
/ 05 января 2009

Вы всегда можете выполнить одну и ту же серию запросов за один раз, разделив их символом ";" ,

0 голосов
/ 05 января 2009

Если возможно объединить все в один запрос, то, по моему опыту, это почти всегда более эффективно; Вы должны делать это независимо. Следуйте по этому пути первым в любом случае. Рассматривайте альтернативы только в том случае, если это невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...