Изменения документа Поиск в таблице по списку ключей
Редактировал(а) Alexandr Fokin 2023/12/16 14:13
От версии 15.1
отредактировано Alexandr Fokin
на 2020/03/28 17:18
на 2020/03/28 17:18
Изменить комментарий:
К данной версии нет комментариев
К версии 1.2
отредактировано Alexandr Fokin
на 2020/03/25 11:41
на 2020/03/25 11:41
Изменить комментарий:
Добавлен тег [sql,Тестирование]
Сводка
-
Свойства страницы (1 изменено, 0 добавлено, 0 удалено)
-
Объекты (0 изменено, 0 добавлено, 1 удалено)
Подробности
- Свойства страницы
-
- Содержимое
-
... ... @@ -1,98 +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>50</td> 29 - <td>1</td> 30 - <td>97</td> 31 - </tr> 32 - <tr> 33 - <td> </td> 34 - <td> </td> 35 - <td> </td> 36 - <td>2</td> 37 - <td>70</td> 38 - </tr> 39 - <tr> 40 - <td> </td> 41 - <td> </td> 42 - <td> </td> 43 - <td>3</td> 44 - <td>34</td> 45 - </tr> 46 - 47 - <tr> 48 - <td> </td> 49 - <td>2000</td> 50 - <td>50</td> 51 - <td>1</td> 52 - <td>202</td> 53 - </tr> 54 - <tr> 55 - <td> </td> 56 - <td> </td> 57 - <td> </td> 58 - <td>2</td> 59 - <td>126</td> 60 - </tr> 61 - <tr> 62 - <td> </td> 63 - <td> </td> 64 - <td> </td> 65 - <td>3</td> 66 - <td>60</td> 67 - </tr> 68 - 69 - <tr> 70 - <td> </td> 71 - <td>4000</td> 72 - <td>50</td> 73 - <td>1</td> 74 - <td>423</td> 75 - </tr> 76 - <tr> 77 - <td> </td> 78 - <td> </td> 79 - <td> </td> 80 - <td>2</td> 81 - <td>247</td> 82 - </tr> 83 - <tr> 84 - <td> </td> 85 - <td> </td> 86 - <td> </td> 87 - <td>3</td> 88 - <td>82</td> 89 - </tr> 90 -</tbody> 91 -</table> 92 -{{/html}} 93 - 94 -Ссылки: 95 -https://metanit.com/sql/sqlserver/10.4.php 96 -https://metanit.com/sql/sqlserver/10.3.php 97 -https://info-comp.ru/programmirovanie/567-table-variables-in-ms-sql-server.html 98 -https://www.cyberforum.ru/ado-net/thread1948686.html
- XWiki.XWikiComments[0]
-
- Автор
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.cccc1808 - Комментарий
-
... ... @@ -1,41 +1,0 @@ 1 -1) 2 -{{code language="sql"}} 3 -select * 4 -from dbo.MainEntities 5 -where I in (1000,1001,1002 ...) 6 -{{/code}} 7 - 8 -2) 9 -{{code language="sql"}} 10 -DROP TABLE IF EXISTS #TmpData 11 - 12 -CREATE TABLE #TmpData 13 -(ID INT) 14 - 15 - 16 -INSERT INTO #TmpData 17 -VALUES (1000), (1001), (1002), ... 18 - 19 -... 20 - 21 -SELECT * 22 -FROM #TmpData td 23 -JOIN dbo.MainEntities me on td.ID = me.I 24 - 25 -DROP TABLE IF EXISTS #TmpData 26 -{{/code}} 27 - 28 -3) 29 -{{code language="sql"}} 30 -Declare @idList xml = ' 31 -<ArrayOfInt> 32 - <int>1000</int> 33 - <int>1001</int> 34 - ... 35 -</ArrayOfInt>' 36 - 37 -Select 38 - me.* 39 -From @idList.nodes('/ArrayOfInt/int') AS idList(id) 40 - JOIN dbo.MainEntities me on idList.id.value('.', 'int') = me.I 41 -{{/code}} - Дата
-
... ... @@ -1,1 +1,0 @@ 1 -2020-03-25 11:50:46.920