|
LINQ join List<T> и большой таблицы из базы
|
|||
---|---|---|---|
#18+
Пытаюсь сделать join между неким List<T> с несколькими сотнями записей и таблицей в базе с несколькими миллионами записей. Задача - выяснить, есть ли в БД строки с такими же параметрами как и в List<T>. Индекс в таблице присутствует. Код: c# 1. 2. 3. 4. 5.
Выполнение этой конструкции практически вешает машину, занимая все системные ресурсы. Если посмотреть профайлером, то в SQL приходит запрос, который делает выборку сразу ВСЕХ записей из таблицы в БД на сторону клиента. Я так понимаю, что непосредственно сам join будет происходить не в БД, а на клиенте... ну это и понятно, БД же ничего не знает о данных в List<T>. Вопрос в том как можно изменить такую конструкцию (или на что ее заменить), чтобы вытащить соединяющиеся данные? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 13:52 |
|
LINQ join List<T> и большой таблицы из базы
|
|||
---|---|---|---|
#18+
Напиши SQL запрос, которых хотелось бы видеть, проверь его работу в Management Studio, удовлетворены ли ожидания. Если да, сикдывай сюда SQL запрос. P.S. Чтобы получить быстро ответ на вопрос, принято предоставлять тестовый код, а не тот огрузок. Плюс схему таблиц и их наполнение. Слепи простенькую демку. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 16:11 |
|
LINQ join List<T> и большой таблицы из базы
|
|||
---|---|---|---|
#18+
ZigsЗадача - выяснить, есть ли в БД строки с такими же параметрами как и в List<T>. "большая" таблица Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Поиск входящих в нее строк Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
Ради интереса накатал, в силу почти не знания MS SQL SERVER, об эффективности судить не могу, да и при такой постановке (где же схема данных, автор?) говорить о чем-то смысла мало. На какие поля у вас индексы есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 18:20 |
|
LINQ join List<T> и большой таблицы из базы
|
|||
---|---|---|---|
#18+
Задача - выяснить, есть ли в БД строки с такими же параметрами как и в List<T>. Что в ответе должно быть? 1) Отдать строки, которые есть 2) Просто сказать да/нет (все строки списка есть в большой) 3) Просто сказать да/нет (хоть какая то строка из списка есть в большой) и т. п.. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2013, 18:35 |
|
|
start [/forum/topic.php?fid=17&fpage=28&tid=1350120]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 120ms |
0 / 0 |