Версия 11.1 от Alexandr Fokin на 2020/03/28 16:28

Скрыть последних авторов
Alexandr Fokin 2.1 1
2 **Задача:**
Alexandr Fokin 3.1 3 Имеется таблица с записями Таблица1 (При этом размеры таблицы не малы)
4 Имеется список ключей List1 (Кол-во элементов в списке превышает 500)
Alexandr Fokin 2.1 5
6 Необходимо отобрать из Таблица1 значения, у которых поле key попадает в список List1.
7
8 **Варианты реализации:**
9 1) Использование оператора IN, в параметрах у которого перечислены все значения из List1.
10 2) Созданием временной таблицы в рамках запроса, наполнение таблицы значениями из List1, выполнить join между временной таблицой и Таблица1
Alexandr Fokin 4.1 11 (!При этом одна операция INSERT может вставить не более 1000 строк и если элементов больше, то потребуется несколько операций)
Alexandr Fokin 8.1 12 Реализация происходит в рамках sql запросов ado.net, без хранимых процедур. Время, затрачиваемое на построение текста запроса, не учитывается.
Alexandr Fokin 9.1 13 3) Использование xml переменной, данные из которой используются для операции join с Таблица1.
Alexandr Fokin 2.1 14
Alexandr Fokin 3.1 15 {{html}}
16 <table style="height: 179px; width: 620px;">
17 <tbody>
Alexandr Fokin 9.1 18 <tr>
19 <td>Кол-во записей с в Таблица1</td>
20 <td>Кол-во элементов в List1</td>
Alexandr Fokin 10.1 21 <td>Кол-во запусков</td>
Alexandr Fokin 9.1 22 <td>№</td>
23 <td>Время выполнения (мс)</td>
24 </tr>
25 <tr>
26 <td>20000</td>
27 <td>1000</td>
Alexandr Fokin 11.1 28 <td>50</td>
Alexandr Fokin 9.1 29 <td>1</td>
Alexandr Fokin 11.1 30 <td>97</td>
31 </tr>
32 <tr>
33 <td>&nbsp;</td>
34 <td>&nbsp;</td>
35 <td>&nbsp;</td>
36 <td>2</td>
37 <td>70</td>
38 </tr>
39 <tr>
40 <td>&nbsp;</td>
41 <td>&nbsp;</td>
42 <td>&nbsp;</td>
43 <td>3</td>
44 <td>34</td>
45 </tr>
46
47 <tr>
48 <td>Кол-во записей с в Таблица1</td>
49 <td>Кол-во элементов в List1</td>
50 <td>Кол-во запусков</td>
51 <td>№</td>
52 <td>Время выполнения (мс)</td>
53 </tr>
54 <tr>
55 <td>20000</td>
56 <td>2000</td>
57 <td>60</td>
58 <td>1</td>
Alexandr Fokin 10.1 59 <td>90</td>
Alexandr Fokin 9.1 60 </tr>
61 <tr>
62 <td>&nbsp;</td>
63 <td>&nbsp;</td>
Alexandr Fokin 10.1 64 <td>&nbsp;</td>
Alexandr Fokin 9.1 65 <td>2</td>
Alexandr Fokin 11.1 66 <td>126</td>
Alexandr Fokin 9.1 67 </tr>
68 <tr>
69 <td>&nbsp;</td>
70 <td>&nbsp;</td>
Alexandr Fokin 10.1 71 <td>&nbsp;</td>
Alexandr Fokin 9.1 72 <td>3</td>
Alexandr Fokin 11.1 73 <td>60</td>
74 </tr>
Alexandr Fokin 3.1 75 </tbody>
76 </table>
77 {{/html}}
Alexandr Fokin 5.1 78
79 Ссылки:
80 https://metanit.com/sql/sqlserver/10.4.php
81 https://metanit.com/sql/sqlserver/10.3.php
82 https://info-comp.ru/programmirovanie/567-table-variables-in-ms-sql-server.html
Alexandr Fokin 6.1 83 https://www.cyberforum.ru/ado-net/thread1948686.html