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

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

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,54 +1,0 @@
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 -3) Использование xml переменной, данные из которой используются для операции join с Таблица1.
14 -
15 -{{html}}
16 -<table style="height: 179px; width: 620px;">
17 -<tbody>
18 - <tr>
19 - <td>Кол-во записей с в Таблица1</td>
20 - <td>Кол-во элементов в List1</td>
21 - <td>Кол-во запусков</td>
22 - <td>№</td>
23 - <td>Время выполнения (мс)</td>
24 - </tr>
25 - <tr>
26 - <td>20000</td>
27 - <td>1000</td>
28 - <td>10</td>
29 - <td>1</td>
30 - <td>90</td>
31 - </tr>
32 - <tr>
33 - <td>&nbsp;</td>
34 - <td>&nbsp;</td>
35 - <td>&nbsp;</td>
36 - <td>2</td>
37 - <td>66</td>
38 - </tr>
39 - <tr>
40 - <td>&nbsp;</td>
41 - <td>&nbsp;</td>
42 - <td>&nbsp;</td>
43 - <td>3</td>
44 - <td>31</td>
45 - </tr>
46 -</tbody>
47 -</table>
48 -{{/html}}
49 -
50 -Ссылки:
51 -https://metanit.com/sql/sqlserver/10.4.php
52 -https://metanit.com/sql/sqlserver/10.3.php
53 -https://info-comp.ru/programmirovanie/567-table-variables-in-ms-sql-server.html
54 -https://www.cyberforum.ru/ado-net/thread1948686.html
XWiki.XWikiComments[0]
Автор
... ... @@ -1,1 +1,0 @@
1 -XWiki.cccc1808
Комментарий
... ... @@ -1,22 +1,0 @@
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,1 +1,0 @@
1 -2020-03-25 11:50:46.920
XWiki.XWikiComments[1]
Автор
... ... @@ -1,1 +1,0 @@
1 -XWiki.cccc1808
Комментарий
... ... @@ -1,2 +1,0 @@
1 -Рассмотреть вариант: передать xml объект и выполнить join
2 -https://stackoverflow.com/questions/19905092/how-to-join-xml-nodes-to-table-column
Дата
... ... @@ -1,1 +1,0 @@
1 -2020-03-25 19:03:15.803