Предпочтительный способ получения строки с несколькими строками , касающихся

на данный момент я рукой,-пишет ДАЛЬ в C# с SqlDataReader и хранимых процедур. Производительность является важным, но он все-таки должен быть простым...

допустим есть Таблица рецепты

(recipeID, author, timeNeeded, yummyFactor, ...)

и в таблице ингредиентов

(recipeID, name, amount, yummyContributionFactor, ...)

сегодня я хотел бы запросе (например, 200 рецептов с их ингредиентов. Я вижу следующие возможности:

  • Запрос все рецепты, то запрос ингредиенты для каждого рецепта.
    Это, конечно, результат в maaany запросов.
  • Запрос все рецепты и их ингредиенты в большой Объединенный список. Это вызовет массу бесполезного трафика, потому что каждый рецепт данные будут передаваться несколько раз.
  • Запрос все рецепты, то запрос все ингредиенты сразу передавая список recipeIDs обратно в базу данных. Кроме того вопроса обоих запросов на один и возвращающих несколько наборов результатов. Еще в ДАЛЬ, доцент ингредиенты для рецептов по их recipeID.
  • Экзотическим образом: Курсор хотя все рецепты и return каждый рецепт двух отдельных наборов результатов для рецепт и ингредиенты. Есть ли предел для resultsets?

Для более разнообразные рецепты могут быть выбраны из списка Идентификаторов ДАЛ или некоторые параметризованных SQL состоянии.

вы считаете имеет лучшую производительность/mess отношение?

Найдено 5 ответов:

Preferred way of retrieving row with multiple relating rows

http://stackoverflow.com/questions/2217616/preferred-way-of-retrieving-row-with-multiple-relating-rows

Посмотреть решение →