Я использую веб-формы ASP.NET и пытаюсь загрузить данные с SQL-сервера. Вот псевдокод о том, как я это делаю:Сокращение круглых поездок в базу данных
connect1 = connect("database")
categories = connect.query("select * from category")
loop categories as category
print category
connect2 = connect("database")
subCategories = connect2.query("select * from subCategory where category = @0", category)
loop subCategories as subCategory
print subCategory
connect3 = connect("database")
items = connect3.query("select * from item where subCategory = @0", subCategory)
loop items as item
print item
end loop 'items
connect3.close
end loop 'subcategories
connect2.close
end loop 'categories
connect1.close
Как вы можете видеть, есть много спуско-происходящих в моем сценарии, это хорошо, когда у меня есть только несколько записей, но когда дело с сотнями или больше, это занимает навсегда отображение данных.
Что можно сделать, чтобы уменьшить количество круговых поездок? Я думал о том, чтобы сразу получить все данные из базы данных, а затем классифицировать их в стороне приложения, но возможно ли это?
Сделайте все в одном запросе. Взгляните на [CTE] (http://msdn.microsoft.com/en-us/library/ms190766%28v=sql.105%29.aspx). Этот вопрос лучше подходит для [codereview] (http://codereview.stackexchange.com/) – nunespascal
@nunespascal Почему CTE? – dpp
CTE, чтобы вы могли рекурсивно получить подкатегории. – nunespascal