Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
история
|
|||
|---|---|---|---|
|
#18+
Нужна идея, как правильно написать есть линкед сервер через него читаю таблица данных и таблица истории (история - что-то вроде EAV) Надо по каждой строке данных подтянуть историю - значение параметра на начало периода и на конец периода и дату изменения этих параметров на начало и конец периода Собственно, данные я получил Но напрягает читать эти данные тучей скалярных подзапросов, да еще по линкедсерверу при том, что основной запрос будет из 20 тысяч строк - т.е. 20000 * 16 (4 параметра * 4 значения) - и получаем 320 тысяч скалярных подзапросов через линкед сервер что весьма напряжно Сама таблица истории пока пустая но в ней будут десятки миллионов строк уже через полгода Индексы в ней есть, и пообещали добавить любые, какие будут нужны Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. idСчетчик А4 Ч/Б: на начало периода отбораСчетчик А4 Ч/Б: на конец периода отбораCI1189072NULL1268820CI1190919NULL17375CI11913126660166601CI11919702177021770CI1192025NULL14303CI1192060NULL42852CI1193174NULLNULLCI119778788708870CI119782230683068CI119877892549254 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2018, 19:54 |
|
||
|
история
|
|||
|---|---|---|---|
|
#18+
сейчас проверил - на чтение одного скаляра на 11 тысяч строк ушло 43 сек т.е. 43*16 сек - мне явно не подойдет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2018, 20:01 |
|
||
|
история
|
|||
|---|---|---|---|
|
#18+
andreymxНо напрягает читать эти данные тучей скалярных подзапросов, да еще по линкедсерверу при том, что основной запрос будет из 20 тысяч строк - т.е. 20000 * 16 (4 параметра * 4 значения)Ну так это особенность EAV. Либо так, либо поддерживайте на стороне линкеда транспонированный EAV с нужной гранулярностью по дате. Из 4*4 можно легко получить 4*2, перенеся коррелированные подзапросы из select в outer apply и объединив в одном получение значения и даты. Индекс для этого хозяйства нужен (FIELD_NAME, id, created_time) include (new_simple_val). FIELD_NAME и id можно в другом порядке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2018, 20:59 |
|
||
|
история
|
|||
|---|---|---|---|
|
#18+
andreymxНадо по каждой строке данных подтянуть историю - значение параметра на начало периода и на конец периода и дату изменения этих параметров на начало и конец периода Собственно, данные я получил Но напрягает читать эти данные тучей скалярных подзапросов, да еще по линкедсерверуНе пойму, а что мешает получить эти данные одним запросом, а не кучей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2018, 21:15 |
|
||
|
история
|
|||
|---|---|---|---|
|
#18+
Или можете попробовать примерно так: Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2018, 21:22 |
|
||
|
история
|
|||
|---|---|---|---|
|
#18+
Можно, как предлагает alexeyvg , и одним запросом: Код: 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. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2018, 10:33 |
|
||
|
история
|
|||
|---|---|---|---|
|
#18+
коллеги, всем спасибо как написать общий запрос я представляю Думаю, что будет с ресурсами и временем выполнения Или на пустой БД об этом думать рано? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2018, 11:09 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39749316&tid=1688580]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 395ms |

| 0 / 0 |
