Редактировал(а) Alexandr Fokin 2023/12/16 14:13

От версии 1.2
отредактировано Alexandr Fokin
на 2020/03/25 11:41
Изменить комментарий: Добавлен тег [sql,Тестирование]
К версии 7.1
отредактировано Alexandr Fokin
на 2020/03/25 19:04
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,0 +1,43 @@
1 +
2 +**Задача:**
3 +Имеется таблица с записями Таблица1 (При этом размеры таблицы не малы)
4 +Имеется список ключей List1 (Кол-во элементов в списке превышает 500)
5 +
6 +Необходимо отобрать из Таблица1 значения, у которых поле key попадает в список List1.
7 +
8 +**Варианты реализации:**
9 +1) Использование оператора IN, в параметрах у которого перечислены все значения из List1.
10 +2) Созданием временной таблицы в рамках запроса, наполнение таблицы значениями из List1, выполнить join между временной таблицой и Таблица1
11 +(!При этом одна операция INSERT может вставить не более 1000 строк и если элементов больше, то потребуется несколько операций)
12 +Реализация происходит в рамках sql запросов ado.net, без хранимых процедур. Время, затрачиваемое на построение запроса, не учитывается.
13 +
14 +{{html}}
15 +<table style="height: 179px; width: 620px;">
16 +<tbody>
17 +<tr>
18 +<td>Кол-во записей с в Таблица1</td>
19 +<td>Кол-во элементов в List1</td>
20 +<td>№</td>
21 +<td>Время выполнения (мс)</td>
22 +</tr>
23 +<tr>
24 +<td>20000</td>
25 +<td>1000</td>
26 +<td>1</td>
27 +<td>3887</td>
28 +</tr>
29 +<tr>
30 +<td>&nbsp;</td>
31 +<td>&nbsp;</td>
32 +<td>2</td>
33 +<td>63</td>
34 +</tr>
35 +</tbody>
36 +</table>
37 +{{/html}}
38 +
39 +Ссылки:
40 +https://metanit.com/sql/sqlserver/10.4.php
41 +https://metanit.com/sql/sqlserver/10.3.php
42 +https://info-comp.ru/programmirovanie/567-table-variables-in-ms-sql-server.html
43 +https://www.cyberforum.ru/ado-net/thread1948686.html
XWiki.XWikiComments[0]
Автор
... ... @@ -1,0 +1,1 @@
1 +XWiki.cccc1808
Комментарий
... ... @@ -1,0 +1,22 @@
1 +1)
2 +select *
3 +from dbo.MainEntities
4 +where I in (1000,1001,1002 ...)
5 +
6 +2)
7 +DROP TABLE IF EXISTS #TmpData
8 +
9 +CREATE TABLE #TmpData
10 +(ID INT)
11 +
12 +
13 +INSERT INTO #TmpData
14 +VALUES (1000), (1001), (1002), ...
15 +
16 +...
17 +
18 +SELECT *
19 +FROM #TmpData td
20 +JOIN dbo.MainEntities me on td.ID = me.I
21 +
22 +DROP TABLE IF EXISTS #TmpData
Дата
... ... @@ -1,0 +1,1 @@
1 +2020-03-25 11:50:46.920
XWiki.XWikiComments[1]
Автор
... ... @@ -1,0 +1,1 @@
1 +XWiki.cccc1808
Комментарий
... ... @@ -1,0 +1,2 @@
1 +Рассмотреть вариант: передать xml объект и выполнить join
2 +https://stackoverflow.com/questions/19905092/how-to-join-xml-nodes-to-table-column
Дата
... ... @@ -1,0 +1,1 @@
1 +2020-03-25 19:03:15.803