|
|
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в таблицу MS SQL? Скажем, 100-300 тыс строк Данные именно из Делфи, в другом месте их нет построчные инсерты будут тормозить или не очень? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 09:04:45 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Пока ждать ответа с форума -- данные уже давно залились бы :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 09:26:00 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, может в текстовый файл, а потом bulk insert? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 10:25:51 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
JaDiПока ждать ответа с форума -- данные уже давно залились бы :-)мне не на один раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 12:15:07 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
http://www.sql.ru/forum/393155/optimizaciya-insert зы А о чем речь? Какие данные вставляются, какие индексы, какая скорость вставки, БД на хдд или ссд? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 13:49:54 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx> как наиболее быстро залить данные из Delphi 7 andreymx> (датасет, массив) в таблицу MS SQL? Скажем, 100-300 тыс строк Пачками. Т.е. либо ArrayDML, либо всякие вариации BULK-инсерт на стороне сервера. Компоненты доступа какие используются? P.S. Хотя ради 300 тыс строк смысла особо париться нет, если это не очень частая и критичная по времени операция, конечно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 15:01:09 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
azsx> azsx Вы бы читали и думали, прежде чем отвечать и ссылки давать. При чём тут MySQL, если ТСу нужен MSSQL, какая ему дело до типа носителя данных на сервере (он может его не знать и это может меняться в ходе эксплуатации) и т.д. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 15:04:01 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Пачками. Т.е. либо ArrayDML, либо всякие вариации BULK-инсерт на стороне сервера. Компоненты доступа какие используются? ado или что-то другое бесплатное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 19:49:17 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx> ado Ну, он ArrayDML сам не умеет, поэтому пачками собирать запросы до макс.размера стейтмента и пулять на сервер. andreymx> или что-то другое бесплатное Ну FireDAC умеет. Умел ли AnyDAC - не помню. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 20:20:28 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Целевая бд очень нагружена, просят нагружать по минимуму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 20:40:54 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
У MS SQL была утилитка, которая очень резво грузила данные из текстовых файлов (SSIS вроде, давно это было, уже не помню). Соответственно, можно выгрузить данные в текстовый файл, сжать его, отправить на сервер (ftp, smb, http), а на сервере поставить программку, которая примет файл, разархивирует, натравит на него SSIS, вернет результат и приберется за собой. В этом случае придется программировать много (особенно по сравнению с простой загрузкой на сервер), но база будет нагружена минимально. Второй похожий вариант - сформировать sql с insert-ами, загнать его на сервер и выполнить (тут опасайтесь long transaction, не знаю как эта хрень в MS SQL называется, когда транзакция, выполняемая слишком долго, считается зависшей и откатывается). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 21:12:44 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxЦелевая бд очень нагружена, просят нагружать по минимуму Загружать по расписанию в ночное время. Загружать порциями. Загружать во временные таблицы. Выделить под загрузку отдельную роль с ограниченными ресурсами и грузить через нее, чтобы другие не тормозили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.05.2017, 22:29:22 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx> Целевая бд очень нагружена, просят нагружать по минимуму У тебя это частая нерегулируемая операция или планируемая? Если второе - то логично вынести её на низконагруженное время, и соответственно вариации bulk-inserta. Если первое, то пачками. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 00:38:53 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Разве insert - это тяжелая для сервера операция? Да еще если "параметризованный", и нет тяжелых индексов и триггеров на вставку. Я думал, проблема в нагрузке на сеть, и нужно побыстрее. А оно вон что. Если сервер нежелательно отвлекать на долгую загрузку, следует инсерты наоборот растянуть во времени, выполнять редко, исходя из требований. Другое дело - как скоро нужны будут результаты загрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2017, 01:53:10 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
работает, уже плюс очень медленно, минус 16.5 тыс строк заливает минуты 3 и больше Код: pascal 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. arrFields - массив выбранных TField В Оракл через ArrayDML заливает за секунду Инфоpмация ---------- Данные записаны в БД , таблица "TMP_1" Количество записанных строк: 16845 Время закачки: 0,807 с. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 17:54:15 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
это само собой Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:00:09 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx Код: pascal 1. С гридом случайно не связан? Курсор не бегает при этом по нему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:00:52 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, Гм, не совсем помню, как там в MSSQL, но кажется стартовать/коммитить транзакцию на каждый чих - излишество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:00:55 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
DarkMasterandreymx, Гм, не совсем помню, как там в MSSQL, но кажется стартовать/коммитить транзакцию на каждый чих - излишество.там не на каждый чих, а на порцию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:01:43 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, А нет, сорри, поторопился, не усмотрел счетчик "записей в пачке"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:02:25 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
если отключить ADOQuery.ExecSQL;, то Время закачки: 0,707 с. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:02:54 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxэто само собой Код: pascal 1. 2. Поиграйся с настройками курсора и направления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:03:41 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
wadmanandreymxэто само собой Код: pascal 1. 2. Поиграйся с настройками курсора и направления. Тот же ltBatchOptimistic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:04:38 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
wadman, там обычный инсерт думаешь, может помочь? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:06:09 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Инфоpмация ---------- Данные записаны в БД, таблица DBO.TMP_sap Количество записанных строк: 16845 Время закачки: 212,748 с. Скорость закачки: 79 строк/сек, 1663 полей/сек Дата: 19.09.2017 18:11:59 Код: pascal 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 18:13:47 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Завтра попробую несколько инсертов в одном запросе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 19:55:53 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
У sdac в пакете компонентов есть загрузчик который грузит очень быстро, подробнее смотри https://www.devart.com/sdac/docs/index.html?devart.sdac.tmsloader.htm Ну и вот msdn https://msdn.microsoft.com/ru-ru/library/dd425070(en-us).aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 20:29:23 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Sdac платный? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 21:24:08 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Я бы разделил задачи. А именно: - сначала выгрузил бы данные из Delphi в CSV файл, - затем из этого CSV загрузил их в SQL "BULK INSERT" (единственно, триггеры не сработают) Причем загрузку сделать утилитой BCP (CreateProcess) imho будет самым быстрым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 21:48:40 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
GatorЯ бы разделил задачи. А именно: - сначала выгрузил бы данные из Delphi в CSV файл, - затем из этого CSV загрузил их в SQL "BULK INSERT" (единственно, триггеры не сработают) Причем загрузку сделать утилитой BCP (CreateProcess) imho будет самым быстрым.Не будет. Лучше вообще ничего не грузить, а почитать про внешние таблицы. Тем более, что видно таблица - временная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 22:05:25 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Relic Hunter, Раньше было самым быстрым. Что изменилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 22:15:01 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Relic Hunter, Кроме того, неизвестно, откуда он исходные данные берёт (может, из разных интернетов) - вот и записать из в файл. Зато массовая вставка - самая быстрая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 22:20:26 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx> Sdac платный? SDAC/UniDAC платные. FireDAC вроде умеет ArrayDML из коробки (собрался было посоветовать, но оказывается уже советовал на первой странице). Если иных глобальных проблем - либо думай над всякими BULK-инсертами и внешними таблицами, либо напиши свой одноразовый ArrayDML, там ничего особо сложного. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 22:22:40 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Gator, Да, записать данные в файл, скажем csv и прилинковать его к sql серверу. Ну скажем, как Jet Text IISAM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 22:26:06 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Тогда заливка будет выглядеть как append/replace csv файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 22:29:25 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Relic Hunter, Нет. Отвязаться от дельфи, линковки серверов, и прочих прослоек. Тупо использовать BULK INSERT https://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 22:58:33 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxЗавтра попробую несколько инсертов в одном запросе Через ADO тысяч по десять записей в одном запросе, выполняется несколько секунд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 23:23:29 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
GatorRelic Hunter, Нет. Отвязаться от дельфи, линковки серверов, и прочих прослоек. Тупо использовать BULK INSERT https://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/ BULK INSERT будет грузить в ОДИН поток. Если уж так хочется грузить, тогда уж SSIS. Он может распараллелить загрузку несложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2017, 23:36:17 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
сделал загрузку порциями, сразу полегчало. Терпимо Размер порции оказался ограничен количеством биндов в АДО, максимум 2100 ---------- Количество записанных строк: 16845 Время закачки: 6,599 с. Скорость закачки: 2553 строк/сек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 07:25:17 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
или выбросить бинды и передавать данные литералами? Что скажут опытные MSSQLщики насчет нагрузки на БД в многопользовательском режиме и о многократном разборе? Код: pascal 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. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611. 612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. 636. 637. 638. 639. 640. 641. 642. 643. 644. 645. 646. 647. 648. 649. 650. 651. 652. 653. 654. 655. 656. 657. 658. 659. 660. 661. 662. 663. 664. 665. 666. 667. 668. 669. 670. 671. 672. 673. 674. 675. 676. 677. 678. 679. 680. 681. 682. 683. 684. 685. 686. 687. 688. 689. 690. 691. 692. 693. 694. 695. 696. 697. 698. 699. 700. 701. 702. 703. 704. 705. 706. 707. 708. 709. 710. 711. 712. 713. 714. 715. 716. 717. 718. 719. 720. 721. 722. 723. 724. 725. 726. 727. 728. 729. 730. 731. 732. 733. 734. 735. 736. 737. 738. 739. 740. 741. 742. 743. 744. 745. 746. 747. 748. 749. 750. 751. 752. 753. 754. 755. 756. 757. 758. 759. 760. 761. 762. 763. 764. 765. 766. 767. 768. 769. 770. 771. 772. 773. 774. 775. 776. 777. 778. 779. 780. 781. 782. 783. 784. 785. 786. 787. 788. 789. 790. 791. 792. 793. 794. 795. 796. 797. 798. 799. 800. 801. 802. 803. 804. 805. 806. 807. 808. 809. 810. 811. 812. 813. 814. 815. 816. 817. 818. 819. 820. 821. 822. 823. 824. 825. 826. 827. 828. 829. 830. 831. 832. 833. 834. 835. 836. 837. 838. 839. 840. 841. 842. 843. 844. 845. 846. 847. 848. 849. 850. 851. 852. 853. 854. 855. 856. 857. 858. 859. 860. 861. 862. 863. 864. 865. 866. 867. 868. 869. 870. 871. 872. 873. 874. 875. 876. 877. 878. 879. 880. 881. 882. 883. 884. 885. 886. 887. 888. 889. 890. 891. 892. 893. 894. 895. 896. 897. 898. 899. 900. 901. 902. 903. 904. 905. 906. 907. 908. 909. 910. 911. 912. 913. 914. 915. 916. 917. 918. 919. 920. 921. 922. 923. 924. 925. 926. 927. 928. 929. 930. 931. 932. 933. 934. 935. 936. 937. 938. 939. 940. 941. 942. 943. 944. 945. 946. 947. 948. 949. 950. 951. 952. 953. 954. 955. 956. 957. 958. 959. 960. 961. 962. 963. 964. 965. 966. 967. 968. 969. 970. 971. 972. 973. 974. 975. 976. 977. 978. 979. 980. 981. 982. 983. 984. 985. 986. 987. 988. 989. 990. 991. 992. 993. 994. 995. 996. 997. 998. 999. 1000. 1001. 1002. 1003. 1004. 1005. 1006. 1007. 1008. 1009. 1010. 1011. 1012. 1013. 1014. 1015. 1016. 1017. 1018. 1019. 1020. 1021. 1022. 1023. 1024. 1025. 1026. 1027. 1028. 1029. 1030. 1031. 1032. 1033. 1034. 1035. 1036. 1037. 1038. 1039. 1040. 1041. 1042. 1043. 1044. 1045. 1046. 1047. 1048. 1049. 1050. 1051. 1052. 1053. 1054. 1055. 1056. 1057. 1058. 1059. 1060. 1061. 1062. 1063. 1064. 1065. 1066. 1067. 1068. 1069. 1070. 1071. 1072. 1073. 1074. 1075. 1076. 1077. 1078. 1079. 1080. 1081. 1082. 1083. 1084. 1085. 1086. 1087. 1088. 1089. 1090. 1091. 1092. 1093. 1094. 1095. 1096. 1097. 1098. 1099. 1100. 1101. 1102. 1103. 1104. 1105. 1106. 1107. 1108. 1109. 1110. 1111. 1112. 1113. 1114. 1115. 1116. 1117. 1118. 1119. 1120. 1121. 1122. 1123. 1124. 1125. 1126. 1127. 1128. 1129. 1130. 1131. 1132. 1133. 1134. 1135. 1136. 1137. 1138. 1139. 1140. 1141. 1142. 1143. 1144. 1145. 1146. 1147. 1148. 1149. 1150. 1151. 1152. 1153. 1154. 1155. 1156. 1157. 1158. 1159. 1160. 1161. 1162. 1163. 1164. 1165. 1166. 1167. 1168. 1169. 1170. 1171. 1172. 1173. 1174. 1175. 1176. 1177. 1178. 1179. 1180. 1181. 1182. 1183. 1184. 1185. 1186. 1187. 1188. 1189. 1190. 1191. 1192. 1193. 1194. 1195. 1196. 1197. 1198. 1199. 1200. 1201. 1202. 1203. 1204. 1205. 1206. 1207. 1208. 1209. 1210. 1211. 1212. 1213. 1214. 1215. 1216. 1217. 1218. 1219. 1220. 1221. 1222. 1223. 1224. 1225. 1226. 1227. 1228. 1229. 1230. 1231. 1232. 1233. 1234. 1235. 1236. 1237. 1238. 1239. 1240. 1241. 1242. 1243. 1244. 1245. 1246. 1247. 1248. 1249. 1250. 1251. 1252. 1253. 1254. 1255. 1256. 1257. 1258. 1259. 1260. 1261. 1262. 1263. 1264. 1265. 1266. 1267. 1268. 1269. 1270. 1271. 1272. 1273. 1274. 1275. 1276. 1277. 1278. 1279. 1280. 1281. 1282. 1283. 1284. 1285. 1286. 1287. 1288. 1289. 1290. 1291. 1292. 1293. 1294. 1295. 1296. 1297. 1298. 1299. 1300. 1301. 1302. 1303. 1304. 1305. 1306. 1307. 1308. 1309. 1310. 1311. 1312. 1313. 1314. 1315. 1316. 1317. 1318. 1319. 1320. 1321. 1322. 1323. 1324. 1325. 1326. 1327. 1328. 1329. 1330. 1331. 1332. 1333. 1334. 1335. 1336. 1337. 1338. 1339. 1340. 1341. 1342. 1343. 1344. 1345. 1346. 1347. 1348. 1349. 1350. 1351. 1352. 1353. 1354. 1355. 1356. 1357. 1358. 1359. 1360. 1361. 1362. 1363. 1364. 1365. 1366. 1367. 1368. 1369. 1370. 1371. 1372. 1373. 1374. 1375. 1376. 1377. 1378. 1379. 1380. 1381. 1382. 1383. 1384. 1385. 1386. 1387. 1388. 1389. 1390. 1391. 1392. 1393. 1394. 1395. 1396. 1397. 1398. 1399. 1400. 1401. 1402. 1403. 1404. 1405. 1406. 1407. 1408. 1409. 1410. 1411. 1412. 1413. 1414. 1415. 1416. 1417. 1418. 1419. 1420. 1421. 1422. 1423. 1424. 1425. 1426. 1427. 1428. 1429. 1430. 1431. 1432. 1433. 1434. 1435. 1436. 1437. 1438. 1439. 1440. 1441. 1442. 1443. 1444. 1445. 1446. 1447. 1448. 1449. 1450. 1451. 1452. 1453. 1454. 1455. 1456. 1457. 1458. 1459. 1460. 1461. 1462. 1463. 1464. 1465. 1466. 1467. 1468. 1469. 1470. 1471. 1472. 1473. 1474. 1475. 1476. 1477. 1478. 1479. 1480. 1481. 1482. 1483. 1484. 1485. 1486. 1487. 1488. 1489. 1490. 1491. 1492. 1493. 1494. 1495. 1496. 1497. 1498. 1499. 1500. 1501. 1502. 1503. 1504. 1505. 1506. 1507. 1508. 1509. 1510. 1511. 1512. 1513. 1514. 1515. 1516. 1517. 1518. 1519. 1520. 1521. 1522. 1523. 1524. 1525. 1526. 1527. 1528. 1529. 1530. 1531. 1532. 1533. 1534. 1535. 1536. 1537. 1538. 1539. 1540. 1541. 1542. 1543. 1544. 1545. 1546. 1547. 1548. 1549. 1550. 1551. 1552. 1553. 1554. 1555. 1556. 1557. 1558. 1559. 1560. 1561. 1562. 1563. 1564. 1565. 1566. 1567. 1568. 1569. 1570. 1571. 1572. 1573. 1574. 1575. 1576. 1577. 1578. 1579. 1580. 1581. 1582. 1583. 1584. 1585. 1586. 1587. 1588. 1589. 1590. 1591. 1592. 1593. 1594. 1595. 1596. 1597. 1598. 1599. 1600. 1601. 1602. 1603. 1604. 1605. 1606. 1607. 1608. 1609. 1610. 1611. 1612. 1613. 1614. 1615. 1616. 1617. 1618. 1619. 1620. 1621. 1622. 1623. 1624. 1625. 1626. 1627. 1628. 1629. 1630. 1631. 1632. 1633. 1634. 1635. 1636. 1637. 1638. 1639. 1640. 1641. 1642. 1643. 1644. 1645. 1646. 1647. 1648. 1649. 1650. 1651. 1652. 1653. 1654. 1655. 1656. 1657. 1658. 1659. 1660. 1661. 1662. 1663. 1664. 1665. 1666. 1667. 1668. 1669. 1670. 1671. 1672. 1673. 1674. 1675. 1676. 1677. 1678. 1679. 1680. 1681. 1682. 1683. 1684. 1685. 1686. 1687. 1688. 1689. 1690. 1691. 1692. 1693. 1694. 1695. 1696. 1697. 1698. 1699. 1700. 1701. 1702. 1703. 1704. 1705. 1706. 1707. 1708. 1709. 1710. 1711. 1712. 1713. 1714. 1715. 1716. 1717. 1718. 1719. 1720. 1721. 1722. 1723. 1724. 1725. 1726. 1727. 1728. 1729. 1730. 1731. 1732. 1733. 1734. 1735. 1736. 1737. 1738. 1739. 1740. 1741. 1742. 1743. 1744. 1745. 1746. 1747. 1748. 1749. 1750. 1751. 1752. 1753. 1754. 1755. 1756. 1757. 1758. 1759. 1760. 1761. 1762. 1763. 1764. 1765. 1766. 1767. 1768. 1769. 1770. 1771. 1772. 1773. 1774. 1775. 1776. 1777. 1778. 1779. 1780. 1781. 1782. 1783. 1784. 1785. 1786. 1787. 1788. 1789. 1790. 1791. 1792. 1793. 1794. 1795. 1796. 1797. 1798. 1799. 1800. 1801. 1802. 1803. 1804. 1805. 1806. 1807. 1808. 1809. 1810. 1811. 1812. 1813. 1814. 1815. 1816. 1817. 1818. 1819. 1820. 1821. 1822. 1823. 1824. 1825. 1826. 1827. 1828. 1829. 1830. 1831. 1832. 1833. 1834. 1835. 1836. 1837. 1838. 1839. 1840. 1841. 1842. 1843. 1844. 1845. 1846. 1847. 1848. 1849. 1850. 1851. 1852. 1853. 1854. 1855. 1856. 1857. 1858. 1859. 1860. 1861. 1862. 1863. 1864. 1865. 1866. 1867. 1868. 1869. 1870. 1871. 1872. 1873. 1874. 1875. 1876. 1877. 1878. 1879. 1880. 1881. 1882. 1883. 1884. 1885. 1886. 1887. 1888. 1889. 1890. 1891. 1892. 1893. 1894. 1895. 1896. 1897. 1898. 1899. 1900. 1901. 1902. 1903. 1904. 1905. 1906. 1907. 1908. 1909. 1910. 1911. 1912. 1913. 1914. 1915. 1916. 1917. 1918. 1919. 1920. 1921. 1922. 1923. 1924. 1925. 1926. 1927. 1928. 1929. 1930. 1931. 1932. 1933. 1934. 1935. 1936. 1937. 1938. 1939. 1940. 1941. 1942. 1943. 1944. 1945. 1946. 1947. 1948. 1949. 1950. 1951. 1952. 1953. 1954. 1955. 1956. 1957. 1958. 1959. 1960. 1961. 1962. 1963. 1964. 1965. 1966. 1967. 1968. 1969. 1970. 1971. 1972. 1973. 1974. 1975. 1976. 1977. 1978. 1979. 1980. 1981. 1982. 1983. 1984. 1985. 1986. 1987. 1988. 1989. 1990. 1991. 1992. 1993. 1994. 1995. 1996. 1997. 1998. 1999. 2000. 2001. 2002. 2003. 2004. 2005. 2006. 2007. 2008. 2009. 2010. 2011. 2012. 2013. 2014. 2015. 2016. 2017. 2018. 2019. 2020. 2021. 2022. 2023. 2024. 2025. 2026. 2027. 2028. 2029. 2030. 2031. 2032. 2033. 2034. 2035. 2036. 2037. 2038. 2039. 2040. 2041. 2042. 2043. 2044. 2045. 2046. 2047. 2048. 2049. 2050. 2051. 2052. 2053. 2054. 2055. 2056. 2057. 2058. 2059. 2060. 2061. 2062. 2063. 2064. 2065. 2066. 2067. 2068. 2069. 2070. 2071. 2072. 2073. 2074. 2075. 2076. 2077. 2078. 2079. 2080. 2081. 2082. 2083. 2084. 2085. 2086. 2087. 2088. 2089. 2090. 2091. 2092. 2093. 2094. 2095. 2096. 2097. 2098. 2099. 2100. 2101. 2102. 2103. 2104. 2105. 2106. 2107. 2108. 2109. 2110. 2111. 2112. 2113. 2114. 2115. 2116. 2117. 2118. 2119. 2120. 2121. 2122. 2123. 2124. 2125. 2126. 2127. 2128. 2129. 2130. 2131. 2132. 2133. 2134. 2135. 2136. 2137. 2138. 2139. 2140. 2141. 2142. 2143. 2144. 2145. 2146. 2147. 2148. 2149. 2150. 2151. 2152. 2153. 2154. 2155. 2156. 2157. 2158. 2159. 2160. 2161. 2162. 2163. 2164. 2165. 2166. 2167. 2168. 2169. 2170. 2171. 2172. 2173. 2174. 2175. 2176. 2177. 2178. 2179. 2180. 2181. 2182. 2183. 2184. 2185. 2186. 2187. 2188. 2189. 2190. 2191. 2192. 2193. 2194. 2195. 2196. 2197. 2198. 2199. 2200. 2201. 2202. 2203. 2204. 2205. 2206. 2207. 2208. 2209. 2210. 2211. 2212. 2213. 2214. 2215. 2216. 2217. 2218. 2219. 2220. 2221. 2222. 2223. 2224. 2225. 2226. 2227. 2228. 2229. 2230. 2231. 2232. 2233. 2234. 2235. 2236. 2237. 2238. 2239. 2240. 2241. 2242. 2243. 2244. 2245. 2246. 2247. 2248. 2249. 2250. 2251. 2252. 2253. 2254. 2255. 2256. 2257. 2258. 2259. 2260. 2261. 2262. 2263. 2264. 2265. 2266. 2267. 2268. 2269. 2270. 2271. 2272. 2273. 2274. 2275. 2276. 2277. 2278. 2279. 2280. 2281. 2282. 2283. 2284. 2285. 2286. 2287. 2288. 2289. 2290. 2291. 2292. 2293. 2294. 2295. 2296. 2297. 2298. 2299. 2300. 2301. 2302. 2303. 2304. 2305. 2306. 2307. 2308. 2309. 2310. 2311. 2312. 2313. 2314. 2315. 2316. 2317. 2318. 2319. 2320. 2321. 2322. 2323. 2324. 2325. 2326. 2327. 2328. 2329. 2330. 2331. 2332. 2333. 2334. 2335. 2336. 2337. 2338. 2339. 2340. 2341. 2342. 2343. 2344. 2345. 2346. 2347. 2348. 2349. 2350. 2351. 2352. 2353. 2354. 2355. 2356. 2357. 2358. 2359. 2360. 2361. 2362. 2363. 2364. 2365. 2366. 2367. 2368. 2369. 2370. 2371. 2372. 2373. 2374. 2375. 2376. 2377. 2378. 2379. 2380. 2381. 2382. 2383. 2384. 2385. 2386. 2387. 2388. 2389. 2390. 2391. 2392. 2393. 2394. 2395. 2396. 2397. 2398. 2399. 2400. 2401. 2402. 2403. 2404. 2405. 2406. 2407. 2408. 2409. 2410. 2411. 2412. 2413. 2414. 2415. 2416. 2417. 2418. 2419. 2420. 2421. 2422. 2423. 2424. 2425. 2426. 2427. 2428. 2429. 2430. 2431. 2432. 2433. 2434. 2435. 2436. 2437. 2438. 2439. 2440. 2441. 2442. 2443. 2444. 2445. 2446. 2447. 2448. 2449. 2450. 2451. 2452. 2453. 2454. 2455. 2456. 2457. 2458. 2459. 2460. 2461. 2462. 2463. 2464. 2465. 2466. 2467. 2468. 2469. 2470. 2471. 2472. 2473. 2474. 2475. 2476. 2477. 2478. 2479. 2480. 2481. 2482. 2483. 2484. 2485. 2486. 2487. 2488. 2489. 2490. 2491. 2492. 2493. 2494. 2495. 2496. 2497. 2498. 2499. 2500. 2501. 2502. 2503. 2504. 2505. 2506. 2507. 2508. 2509. 2510. 2511. 2512. 2513. 2514. 2515. 2516. 2517. 2518. 2519. 2520. 2521. 2522. 2523. 2524. 2525. 2526. 2527. 2528. 2529. 2530. 2531. 2532. 2533. 2534. 2535. 2536. 2537. 2538. 2539. 2540. 2541. 2542. 2543. 2544. 2545. 2546. 2547. 2548. 2549. 2550. 2551. 2552. 2553. 2554. 2555. 2556. 2557. 2558. 2559. 2560. 2561. 2562. 2563. 2564. 2565. 2566. 2567. 2568. 2569. 2570. 2571. 2572. 2573. 2574. 2575. 2576. 2577. 2578. 2579. 2580. 2581. 2582. 2583. 2584. 2585. 2586. 2587. 2588. 2589. 2590. 2591. 2592. 2593. 2594. 2595. 2596. 2597. 2598. 2599. 2600. 2601. 2602. 2603. 2604. 2605. 2606. 2607. 2608. 2609. 2610. 2611. 2612. 2613. 2614. 2615. 2616. 2617. 2618. 2619. 2620. 2621. 2622. 2623. 2624. 2625. 2626. 2627. 2628. 2629. 2630. 2631. 2632. 2633. 2634. 2635. 2636. 2637. 2638. 2639. 2640. 2641. 2642. 2643. 2644. 2645. 2646. 2647. 2648. 2649. 2650. 2651. 2652. 2653. 2654. 2655. 2656. 2657. 2658. 2659. 2660. 2661. 2662. 2663. 2664. 2665. 2666. 2667. 2668. 2669. 2670. 2671. 2672. 2673. 2674. 2675. 2676. 2677. 2678. 2679. 2680. 2681. 2682. 2683. 2684. 2685. 2686. 2687. 2688. 2689. 2690. 2691. 2692. 2693. 2694. 2695. 2696. 2697. 2698. 2699. 2700. 2701. 2702. 2703. 2704. 2705. 2706. 2707. 2708. 2709. 2710. 2711. 2712. 2713. 2714. 2715. 2716. 2717. 2718. 2719. 2720. 2721. 2722. 2723. 2724. 2725. 2726. 2727. 2728. 2729. 2730. 2731. 2732. 2733. 2734. 2735. 2736. 2737. 2738. 2739. 2740. 2741. 2742. 2743. 2744. 2745. 2746. 2747. 2748. 2749. 2750. 2751. 2752. 2753. 2754. 2755. 2756. 2757. 2758. 2759. 2760. 2761. 2762. 2763. 2764. 2765. 2766. 2767. 2768. 2769. 2770. 2771. 2772. 2773. 2774. 2775. 2776. 2777. 2778. 2779. 2780. 2781. 2782. 2783. 2784. 2785. 2786. 2787. 2788. 2789. 2790. 2791. 2792. 2793. 2794. 2795. 2796. 2797. 2798. 2799. 2800. 2801. 2802. 2803. 2804. 2805. 2806. 2807. 2808. 2809. 2810. 2811. 2812. 2813. 2814. 2815. 2816. 2817. 2818. 2819. 2820. 2821. 2822. 2823. 2824. 2825. 2826. 2827. 2828. 2829. 2830. 2831. 2832. 2833. 2834. 2835. 2836. 2837. 2838. 2839. 2840. 2841. 2842. 2843. 2844. 2845. 2846. 2847. 2848. 2849. 2850. 2851. 2852. 2853. 2854. 2855. 2856. 2857. 2858. 2859. 2860. 2861. 2862. 2863. 2864. 2865. 2866. 2867. 2868. 2869. 2870. 2871. 2872. 2873. 2874. 2875. 2876. 2877. 2878. 2879. 2880. 2881. 2882. 2883. 2884. 2885. 2886. 2887. 2888. 2889. 2890. 2891. 2892. 2893. 2894. 2895. 2896. 2897. 2898. 2899. 2900. 2901. 2902. 2903. 2904. 2905. 2906. 2907. 2908. 2909. 2910. 2911. 2912. 2913. 2914. 2915. 2916. 2917. 2918. 2919. 2920. 2921. 2922. 2923. 2924. 2925. 2926. 2927. 2928. 2929. 2930. 2931. 2932. 2933. 2934. 2935. 2936. 2937. 2938. 2939. 2940. 2941. 2942. 2943. 2944. 2945. 2946. 2947. 2948. 2949. 2950. 2951. 2952. 2953. 2954. 2955. 2956. 2957. 2958. 2959. 2960. 2961. 2962. 2963. 2964. 2965. 2966. 2967. 2968. 2969. 2970. 2971. 2972. 2973. 2974. 2975. 2976. 2977. 2978. 2979. 2980. 2981. 2982. 2983. 2984. 2985. 2986. 2987. 2988. 2989. 2990. 2991. 2992. 2993. 2994. 2995. 2996. 2997. 2998. 2999. 3000. 3001. 3002. 3003. 3004. 3005. 3006. 3007. 3008. 3009. 3010. 3011. 3012. 3013. 3014. 3015. 3016. 3017. 3018. 3019. 3020. 3021. 3022. 3023. 3024. 3025. 3026. 3027. 3028. 3029. 3030. 3031. 3032. 3033. 3034. 3035. 3036. 3037. 3038. 3039. 3040. 3041. 3042. 3043. 3044. 3045. 3046. 3047. 3048. 3049. 3050. 3051. 3052. 3053. 3054. 3055. 3056. 3057. 3058. 3059. 3060. 3061. 3062. 3063. 3064. 3065. 3066. 3067. 3068. 3069. 3070. 3071. 3072. 3073. 3074. 3075. 3076. 3077. 3078. 3079. 3080. 3081. 3082. 3083. 3084. 3085. 3086. 3087. 3088. 3089. 3090. 3091. 3092. 3093. 3094. 3095. 3096. 3097. 3098. 3099. 3100. 3101. 3102. 3103. 3104. 3105. 3106. 3107. 3108. 3109. 3110. 3111. 3112. 3113. 3114. 3115. 3116. 3117. 3118. 3119. 3120. 3121. 3122. 3123. 3124. 3125. 3126. 3127. 3128. 3129. 3130. 3131. 3132. 3133. 3134. 3135. 3136. 3137. 3138. 3139. 3140. 3141. 3142. 3143. 3144. 3145. 3146. 3147. 3148. 3149. 3150. 3151. 3152. 3153. 3154. 3155. 3156. 3157. 3158. 3159. 3160. 3161. 3162. 3163. 3164. 3165. 3166. 3167. 3168. 3169. 3170. 3171. 3172. 3173. 3174. 3175. 3176. 3177. 3178. 3179. 3180. 3181. 3182. 3183. 3184. 3185. 3186. 3187. 3188. 3189. 3190. 3191. 3192. 3193. 3194. 3195. 3196. 3197. 3198. 3199. 3200. 3201. 3202. 3203. 3204. 3205. 3206. 3207. 3208. 3209. 3210. 3211. 3212. 3213. 3214. 3215. 3216. 3217. 3218. 3219. 3220. 3221. 3222. 3223. 3224. 3225. 3226. 3227. 3228. 3229. 3230. 3231. 3232. 3233. 3234. 3235. 3236. 3237. 3238. 3239. 3240. 3241. 3242. 3243. 3244. 3245. 3246. 3247. 3248. 3249. 3250. 3251. 3252. 3253. 3254. 3255. 3256. 3257. 3258. 3259. 3260. 3261. 3262. 3263. 3264. 3265. 3266. 3267. 3268. 3269. 3270. 3271. 3272. 3273. 3274. 3275. 3276. 3277. 3278. 3279. 3280. 3281. 3282. 3283. 3284. 3285. 3286. 3287. 3288. 3289. 3290. 3291. 3292. 3293. 3294. 3295. 3296. 3297. 3298. 3299. 3300. 3301. 3302. 3303. 3304. 3305. 3306. 3307. 3308. 3309. 3310. 3311. 3312. 3313. 3314. 3315. 3316. 3317. 3318. 3319. 3320. 3321. 3322. 3323. 3324. 3325. 3326. 3327. 3328. 3329. 3330. 3331. 3332. 3333. 3334. 3335. 3336. 3337. 3338. 3339. 3340. 3341. 3342. 3343. 3344. 3345. 3346. 3347. 3348. 3349. 3350. 3351. 3352. 3353. 3354. 3355. 3356. 3357. 3358. 3359. 3360. 3361. 3362. 3363. 3364. 3365. 3366. 3367. 3368. 3369. 3370. 3371. 3372. 3373. 3374. 3375. 3376. 3377. 3378. 3379. 3380. 3381. 3382. 3383. 3384. 3385. 3386. 3387. 3388. 3389. 3390. 3391. 3392. 3393. 3394. 3395. 3396. 3397. 3398. 3399. 3400. 3401. 3402. 3403. 3404. 3405. 3406. 3407. 3408. 3409. 3410. 3411. 3412. 3413. 3414. 3415. 3416. 3417. 3418. 3419. 3420. 3421. 3422. 3423. 3424. 3425. 3426. 3427. 3428. 3429. 3430. 3431. 3432. 3433. 3434. 3435. 3436. 3437. 3438. 3439. 3440. 3441. 3442. 3443. 3444. 3445. 3446. 3447. 3448. 3449. 3450. 3451. 3452. 3453. 3454. 3455. 3456. 3457. 3458. 3459. 3460. 3461. 3462. 3463. 3464. 3465. 3466. 3467. 3468. 3469. 3470. 3471. 3472. 3473. 3474. 3475. 3476. 3477. 3478. 3479. 3480. 3481. 3482. 3483. 3484. 3485. 3486. 3487. 3488. 3489. 3490. 3491. 3492. 3493. 3494. 3495. 3496. 3497. 3498. 3499. 3500. 3501. 3502. 3503. 3504. 3505. 3506. 3507. 3508. 3509. 3510. 3511. 3512. 3513. 3514. 3515. 3516. 3517. 3518. 3519. 3520. 3521. 3522. 3523. 3524. 3525. 3526. 3527. 3528. 3529. 3530. 3531. 3532. 3533. 3534. 3535. 3536. 3537. 3538. 3539. 3540. 3541. 3542. 3543. 3544. 3545. 3546. 3547. 3548. 3549. 3550. 3551. 3552. 3553. 3554. 3555. 3556. 3557. 3558. 3559. 3560. 3561. 3562. 3563. 3564. 3565. 3566. 3567. 3568. 3569. 3570. 3571. 3572. 3573. 3574. 3575. 3576. 3577. 3578. 3579. 3580. 3581. 3582. 3583. 3584. 3585. 3586. 3587. 3588. 3589. 3590. 3591. 3592. 3593. 3594. 3595. 3596. 3597. 3598. 3599. 3600. 3601. 3602. 3603. 3604. 3605. 3606. 3607. 3608. 3609. 3610. 3611. 3612. 3613. 3614. 3615. 3616. 3617. 3618. 3619. 3620. 3621. 3622. 3623. 3624. 3625. 3626. 3627. 3628. 3629. 3630. 3631. 3632. 3633. 3634. 3635. 3636. 3637. 3638. 3639. 3640. 3641. 3642. 3643. 3644. 3645. 3646. 3647. 3648. 3649. 3650. 3651. 3652. 3653. 3654. 3655. 3656. 3657. 3658. 3659. 3660. 3661. 3662. 3663. 3664. 3665. 3666. 3667. 3668. 3669. 3670. 3671. 3672. 3673. 3674. 3675. 3676. 3677. 3678. 3679. 3680. 3681. 3682. 3683. 3684. 3685. 3686. 3687. 3688. 3689. 3690. 3691. 3692. 3693. 3694. 3695. 3696. 3697. 3698. 3699. 3700. 3701. 3702. 3703. 3704. 3705. 3706. 3707. 3708. 3709. 3710. 3711. 3712. 3713. 3714. 3715. 3716. 3717. 3718. 3719. 3720. 3721. 3722. 3723. 3724. 3725. 3726. 3727. 3728. 3729. 3730. 3731. 3732. 3733. 3734. 3735. 3736. 3737. 3738. 3739. 3740. 3741. 3742. 3743. 3744. 3745. 3746. 3747. 3748. 3749. 3750. 3751. 3752. 3753. 3754. 3755. 3756. 3757. 3758. 3759. 3760. 3761. 3762. 3763. 3764. 3765. 3766. 3767. 3768. 3769. 3770. 3771. 3772. 3773. 3774. 3775. 3776. 3777. 3778. 3779. 3780. 3781. 3782. 3783. 3784. 3785. 3786. 3787. 3788. 3789. 3790. 3791. 3792. 3793. 3794. 3795. 3796. 3797. 3798. 3799. 3800. 3801. 3802. 3803. 3804. 3805. 3806. 3807. 3808. 3809. 3810. 3811. 3812. 3813. 3814. 3815. 3816. 3817. 3818. 3819. 3820. 3821. 3822. 3823. 3824. 3825. 3826. 3827. 3828. 3829. 3830. 3831. 3832. 3833. 3834. 3835. 3836. 3837. 3838. 3839. 3840. 3841. 3842. 3843. 3844. 3845. 3846. 3847. 3848. 3849. 3850. 3851. 3852. 3853. 3854. 3855. 3856. 3857. 3858. 3859. 3860. 3861. 3862. 3863. 3864. 3865. 3866. 3867. 3868. 3869. 3870. 3871. 3872. 3873. 3874. 3875. 3876. 3877. 3878. 3879. 3880. 3881. 3882. 3883. 3884. 3885. 3886. 3887. 3888. 3889. 3890. 3891. 3892. 3893. 3894. 3895. 3896. 3897. 3898. 3899. 3900. 3901. 3902. 3903. 3904. 3905. 3906. 3907. 3908. 3909. 3910. 3911. 3912. 3913. 3914. 3915. 3916. 3917. 3918. 3919. 3920. 3921. 3922. 3923. 3924. 3925. 3926. 3927. 3928. 3929. 3930. 3931. 3932. 3933. 3934. 3935. 3936. 3937. 3938. 3939. 3940. 3941. 3942. 3943. 3944. 3945. 3946. 3947. 3948. 3949. 3950. 3951. 3952. 3953. 3954. 3955. 3956. 3957. 3958. 3959. 3960. 3961. 3962. 3963. 3964. 3965. 3966. 3967. 3968. 3969. 3970. 3971. 3972. 3973. 3974. 3975. 3976. 3977. 3978. 3979. 3980. 3981. 3982. 3983. 3984. 3985. 3986. 3987. 3988. 3989. 3990. 3991. 3992. 3993. 3994. 3995. 3996. 3997. 3998. 3999. 4000. 4001. 4002. 4003. 4004. 4005. 4006. 4007. 4008. 4009. 4010. 4011. 4012. 4013. 4014. 4015. 4016. 4017. 4018. 4019. 4020. 4021. 4022. 4023. 4024. 4025. 4026. 4027. 4028. 4029. 4030. 4031. 4032. 4033. 4034. 4035. 4036. 4037. 4038. 4039. 4040. 4041. 4042. 4043. 4044. 4045. 4046. 4047. 4048. 4049. 4050. 4051. 4052. 4053. 4054. 4055. 4056. 4057. 4058. 4059. 4060. 4061. 4062. 4063. 4064. 4065. 4066. 4067. 4068. 4069. 4070. 4071. 4072. 4073. 4074. 4075. 4076. 4077. 4078. 4079. 4080. 4081. 4082. 4083. 4084. 4085. 4086. 4087. 4088. 4089. 4090. 4091. 4092. 4093. 4094. 4095. 4096. 4097. 4098. 4099. 4100. 4101. 4102. 4103. 4104. 4105. 4106. 4107. 4108. 4109. 4110. 4111. 4112. 4113. 4114. 4115. 4116. 4117. 4118. 4119. 4120. 4121. 4122. 4123. 4124. 4125. 4126. 4127. 4128. 4129. 4130. 4131. 4132. 4133. 4134. 4135. 4136. 4137. 4138. 4139. 4140. 4141. 4142. 4143. 4144. 4145. 4146. 4147. 4148. 4149. 4150. 4151. 4152. 4153. 4154. 4155. 4156. 4157. 4158. 4159. 4160. 4161. 4162. 4163. 4164. 4165. 4166. 4167. 4168. 4169. 4170. 4171. 4172. 4173. 4174. 4175. 4176. 4177. 4178. 4179. 4180. 4181. 4182. 4183. 4184. 4185. 4186. 4187. 4188. 4189. 4190. 4191. 4192. 4193. 4194. 4195. 4196. 4197. 4198. 4199. 4200. 4201. 4202. 4203. 4204. 4205. 4206. 4207. 4208. 4209. 4210. 4211. 4212. 4213. 4214. 4215. 4216. 4217. 4218. 4219. 4220. 4221. 4222. 4223. 4224. 4225. 4226. 4227. 4228. 4229. 4230. 4231. 4232. 4233. 4234. 4235. 4236. 4237. 4238. 4239. 4240. 4241. 4242. 4243. 4244. 4245. 4246. 4247. 4248. 4249. 4250. 4251. 4252. 4253. 4254. 4255. 4256. 4257. 4258. 4259. 4260. 4261. 4262. 4263. 4264. 4265. 4266. 4267. 4268. 4269. 4270. 4271. 4272. 4273. 4274. 4275. 4276. 4277. 4278. 4279. 4280. 4281. 4282. 4283. 4284. 4285. 4286. 4287. 4288. 4289. 4290. 4291. 4292. 4293. 4294. 4295. 4296. 4297. 4298. 4299. 4300. 4301. 4302. 4303. 4304. 4305. 4306. 4307. 4308. 4309. 4310. 4311. 4312. 4313. 4314. 4315. 4316. 4317. 4318. 4319. 4320. 4321. 4322. 4323. 4324. 4325. 4326. 4327. 4328. 4329. 4330. 4331. 4332. 4333. 4334. 4335. 4336. 4337. 4338. 4339. 4340. 4341. 4342. 4343. 4344. 4345. 4346. 4347. 4348. 4349. 4350. 4351. 4352. 4353. 4354. 4355. 4356. 4357. 4358. 4359. 4360. 4361. 4362. 4363. 4364. 4365. 4366. 4367. 4368. 4369. 4370. 4371. 4372. 4373. 4374. 4375. 4376. 4377. 4378. 4379. 4380. 4381. 4382. 4383. 4384. 4385. 4386. 4387. 4388. 4389. 4390. 4391. 4392. 4393. 4394. 4395. 4396. 4397. 4398. 4399. 4400. 4401. 4402. 4403. 4404. 4405. 4406. 4407. 4408. 4409. 4410. 4411. 4412. 4413. 4414. 4415. 4416. 4417. 4418. 4419. 4420. 4421. 4422. 4423. 4424. 4425. 4426. 4427. 4428. 4429. 4430. 4431. 4432. 4433. 4434. 4435. 4436. 4437. 4438. 4439. 4440. 4441. 4442. 4443. 4444. 4445. 4446. 4447. 4448. 4449. 4450. 4451. 4452. 4453. 4454. 4455. 4456. 4457. 4458. 4459. 4460. 4461. 4462. 4463. 4464. 4465. 4466. 4467. 4468. 4469. 4470. 4471. 4472. 4473. 4474. 4475. 4476. 4477. 4478. 4479. 4480. 4481. 4482. 4483. 4484. 4485. 4486. 4487. 4488. 4489. 4490. 4491. 4492. 4493. 4494. 4495. 4496. 4497. 4498. 4499. 4500. 4501. 4502. 4503. 4504. 4505. 4506. 4507. 4508. 4509. 4510. 4511. 4512. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 07:40:28 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Нет ли в таблице большого числа индексов? Может быть из-за них тормозит загрузка? http://use-the-index-luke.com/sql/dml/insert Проверил на тестовом серваке: 20000 rows in 5.89 sec. Есть только primary key clustered данные загружались последовательным чтением строк из текстового файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 08:38:41 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Kast2K, таблица новая, без индексов и партиций и констрейнтов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 08:59:38 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxили выбросить бинды и передавать данные литералами? ...о многократном разборе? Код: 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. Если уже сделано через бинды, то улучшить ситуацию можно так^ . Вместо многих insert только один- снижение нагрузки на сервер. Транзакцию на одну команду insert делать не нужно. На всю заливку- тем более. Если приложение повиснет, не закрыв её, то sql админы будут очень "благодарны". Можно переделать на генерацию подобного скрипта, это снимет ограничение на количество. Но тогда придётся самому обрабатывать типы данных и следить за sql inject BCP, SSIS, SDAC уже предлагали правильнее использовать BCP API , но это большой труд ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 09:52:07 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx> или выбросить бинды и передавать данные литералами? Не, литералами не надо, оставь параметры. 6 сек приемлемое время? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 12:03:41 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, таки не понятно: почему ТС не может использовать Bulk Insert + Openrowset ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 12:36:05 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, 6 секуннд на 16000 записей много. ADOQuery не нужен, AdoCommand нужен. Попробуй без параметров по 20000 записей в запросе. Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 13:02:59 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Gerasimenkoandreymx, таки не понятно: почему ТС не может использовать Bulk Insert + Openrowset ?если пользователю надо будет что-то делать руками помимо нажатия кнопок в моей проге - то однозначно не годится доступа на сервер или в какую-то сетевую папку у него может не быть Гаджимурадов Рустамandreymx> или выбросить бинды и передавать данные литералами? Не, литералами не надо, оставь параметры. 6 сек приемлемое время?вполне устраивает только еще придется доработать порционную загрузку - например, размер порции 128 строк, а в датасете 511 - чтобы было три порции по 128 строк и одна на 127. А щаз у меня три порции по 128 строк и 127 по одной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 15:14:24 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, Что руками? Даже если руками: слил в новую таблицу и пущай себе балуется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 15:20:01 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, https://technet.microsoft.com/ru-ru/library/ms175915(v=sql.105).aspx Если пользователь использует имя входа SQL Server, то применяется профиль безопасности учетной записи процесса SQL Server. Если пользователь SQL Server входит в систему с проверкой подлинности Windows, то ему доступны только те файлы, к которым имеет доступ учетная запись пользователя, независимо от профиля безопасности процесса SQL Server. Предположим, пользователь вошел в экземпляр SQL Server с проверкой подлинности Windows. Чтобы иметь возможность воспользоваться BULK INSERT или OPENROWSET для импорта данных из файла данных в таблицу SQL Server, учетная запись должна иметь доступ на чтение этого файла данных. Если же пользователь имеет доступ к файлу данных, то он может импортировать данные из файла в таблицу даже в том случае, когда процесс SQL Server не имеет прав доступа к файлу. Пользователь не должен предоставлять процессу SQL Server права на доступ к файлу. SQL Server и Microsoft Windows могут быть настроены таким образом, чтобы экземпляр SQL Server мог выполнять соединение с другим экземпляром SQL Server посредством переадресации учетных данных пользователя Windows, прошедшего проверку подлинности. Это соглашение называется олицетворением или делегированием. При использовании инструкции BULK INSERT или OPENROWSET очень важно понимание того, как SQL Server 2005 и более поздних версий обеспечивает безопасность олицетворения пользователя. Это позволяет хранить файл данных не на том компьютере, на котором вошел пользователь или работает процесс SQL Server. Например, если пользователь на компьютере_A имеет доступ к файлу данных на компьютере_B и делегирование учетных данных было соответствующим образом настроено, этот пользователь может подключиться к экземпляру SQL Server, запущенному на компьютере_C, получить доступ к файлу данных на компьютере_B и выполнить массовый импорт данных из этого файла в таблицу на компьютере_C. Дополнительные сведения см. в разделе Основные сведения об олицетворении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 15:28:17 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Gerasimenko, что в моём случае будет источником данных для OPENROWSET? Функция OPENROWSET(BULK…) Доступ к поставщику группового набора строк OPENROWSET производится через вызов функции OPENROWSET с указанием параметра BULK. Функция OPENROWSET(BULK…) обеспечивает доступ к удаленным данным, производя подключение к удаленному источнику данных, например файлу данных, через поставщик OLE DB. Чтобы импортировать групповые данные, вызовите функцию OPENROWSET(BULK…) из предложения SELECT…FROM инструкции INSERT. Основной синтаксис массового импорта данных: INSERT ... SELECT * FROM OPENROWSET(BULK...) При использовании инструкции INSERT функция OPENROWSET(BULK...) поддерживает табличные подсказки. Кроме обычных табличных подсказок, вроде TABLOCK, предложение BULK принимает следующие специальные табличные подсказки: IGNORE_CONSTRAINTS (не учитывается только ограничения CHECK), IGNORE_TRIGGERS, KEEPDEFAULTS и KEEPIDENTITY. Дополнительные сведения см. в разделе Табличные подсказки (Transact-SQL). Сведения о дополнительном использовании параметра BULK см. в разделе OPENROWSET (Transact-SQL). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 15:57:59 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxGerasimenko, что в моём случае будет источником данных для OPENROWSET? Функция OPENROWSET(BULK…) Доступ к поставщику группового набора строк OPENROWSET производится через вызов функции OPENROWSET с указанием параметра BULK. Функция OPENROWSET(BULK…) обеспечивает доступ к удаленным данным, производя подключение к удаленному источнику данных, например файлу данных, через поставщик OLE DB. Чтобы импортировать групповые данные, вызовите функцию OPENROWSET(BULK…) из предложения SELECT…FROM инструкции INSERT. Основной синтаксис массового импорта данных: INSERT ... SELECT * FROM OPENROWSET(BULK...) При использовании инструкции INSERT функция OPENROWSET(BULK...) поддерживает табличные подсказки. Кроме обычных табличных подсказок, вроде TABLOCK, предложение BULK принимает следующие специальные табличные подсказки: IGNORE_CONSTRAINTS (не учитывается только ограничения CHECK), IGNORE_TRIGGERS, KEEPDEFAULTS и KEEPIDENTITY. Дополнительные сведения см. в разделе Табличные подсказки (Transact-SQL). Сведения о дополнительном использовании параметра BULK см. в разделе OPENROWSET (Transact-SQL). Выбирай, что тебе подходит: https://technet.microsoft.com/ru-ru/library/ms190312(v=sql.105).aspx (см примеры) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 16:03:39 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Gerasimenko, 1. если бы я знал, что мне подходит, я бы уже выбрал 2. как я уже говорил, у меня нет доступа к серверу, а с сервера нет доступа к моим ресурсам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 16:27:54 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxGerasimenko, 1. если бы я знал, что мне подходит, я бы уже выбрал 2. как я уже говорил, у меня нет доступа к серверу, а с сервера нет доступа к моим ресурсам Ты как партизан не говоришь, что является первоначальным источником данных. Датасет - вторичен. Как вариант, сохранить файл в блоб на серверу, с сервера развернуть в начальный вид и использовать далее по ссылке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 16:36:03 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
первичный источник данных один из следующих, любой: - эксель - запрос из оракла - dbf-файл - db-файл - запрос из dbf-файла - запрос из db-файла - запрос из mssql - запрос посредством ADO - запрос из IB/FB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 16:41:24 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxпервичный источник данных один из следующих, любой: - эксель - запрос из оракла - dbf-файл - db-файл - запрос из dbf-файла - запрос из db-файла - запрос из mssql - запрос посредством ADO - запрос из IB/FB т.е. ту часть, что нельзя линковать, можно слить через блоб, остальную через линковку. Если универсальный: то сохранять результаты как csv файл (возможно заархивированный) и сливать на сервер через блоб, если другого выхода нет. Ограничение: varbinary [( n | max)] двоичные данные переменной длины. nможет иметь значение от 1 до 8000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 16:54:05 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
вместо varbinary можно использовать image. Те же яйца, только ограничения другие... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2017, 17:10:46 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
tunknownandreymxили выбросить бинды и передавать данные литералами? ...о многократном разборе? Код: 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. примерно так сделал скорость раз в 15 меньше, чем булк инсерт в Оракле, но терпимо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2017, 16:23:50 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxскорость раз в 15 меньше, чем булк инсерт в Оракле, но терпимоИзмерялось общее время или длительность самого insert через profiler? Интересно, насколько быстр массовый биндинг на стороне DB-компонента/OLEDB провайдера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 09:56:17 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxДанные именно из Делфи, в другом месте их нет Очень заинтересовало, подскажите пожалуйста, в каком месте хранит Delphi данные, может пригодится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 12:31:31 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
stells2andreymxДанные именно из Делфи, в другом месте их нет Очень заинтересовало, подскажите пожалуйста, в каком месте хранит Delphi данные, может пригодится.в результате запроса, в dataset'e ЗЫ: Надеюсь, что помог ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 12:44:22 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxв результате запроса, в dataset'e Понятно, я уж думал delphi научился хранить данные. :) Ваш датасет берет данные откуда то, верно? А потом эти данные хочет закинуть на сервер, т.е. является посредником, правильно я понял? Тут речь не о хранении данных в delphi а об их обработки (надеюсь, это не визуальный интерфейс, типа АРМ, который даёт пользователю сотни тыс.строк данных) этих данных. Вариант плановой задачи по загрузки данных на самом MS SQL сервере не рассматривался? Напрямую, без использования delphi и прочих сред? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 12:52:08 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymx, В случае, если решено использовать приложение как посредника, надо четко понять - это в любом случае цикл с перебором всех строк и инсертом на каждую строку. Для этой операции нет необходимости к Table / Query прикручивать DataSource т.е. использовать визуализацию. Самый простой вариант: Открываем (можно даже динамически, в теле процедуры создать) пару таблиц, одна поднимет данные ваши, вторая подключиться к MS SQL и эти таблицы могут быть разные, т.е. одна может быть обычной TTable / TQuery вторая из ADO. Можно попробовать TBatchMove... Вообще, вся задача сводится к выполнению скрипта insert :) Какими бы средствами не пользовались, хоть cmd файлом. Но, одномоментная заливка сотен тысяч записей на сервер в любом случае будет его просаживать, и это владельцы сервера заметят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 13:17:09 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxкак наиболее быстро залить данные из Delphi 7 (датасет, массив) в таблицу MS SQL? Скажем, 100-300 тыс строк Данные именно из Делфи, в другом месте их нет IRowsetFastLoad (OLE DB) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 14:14:09 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
stells2andreymx, В случае, если решено использовать приложение как посредника, надо четко понять - это в любом случае цикл с перебором всех строк и инсертом на каждую строку. Для этой операции нет необходимости к Table / Query прикручивать DataSource т.е. использовать визуализацию. Самый простой вариант: Открываем (можно даже динамически, в теле процедуры создать) пару таблиц, одна поднимет данные ваши, вторая подключиться к MS SQL и эти таблицы могут быть разные, т.е. одна может быть обычной TTable / TQuery вторая из ADO. Можно попробовать TBatchMove... Вообще, вся задача сводится к выполнению скрипта insert :) Какими бы средствами не пользовались, хоть cmd файлом. Но, одномоментная заливка сотен тысяч записей на сервер в любом случае будет его просаживать, и это владельцы сервера заметят.спасибо за советы ЗЫ: в MSSQL сотни тысяч строк ещё не вставлял, но в Оракл из Экселя 300 тыс строк - аж бегом Появляются время от времени такие разовые задачи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 15:24:36 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Uridianandreymxкак наиболее быстро залить данные из Delphi 7 (датасет, массив) в таблицу MS SQL? Скажем, 100-300 тыс строк Данные именно из Делфи, в другом месте их нет IRowsetFastLoad (OLE DB) тут уже обсуждали, http://www.sql.ru/forum/707391-1/irowsetfastload спасибо если в отпуске будет время, пороюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 15:35:11 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
А в чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 17:05:48 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
MKZMА в чем проблема?уточни вопрос, плз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 21:13:12 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxUridianпропущено... IRowsetFastLoad (OLE DB) тут уже обсуждали, http://www.sql.ru/forum/707391-1/irowsetfastload спасибо если в отпуске будет время, пороюсьположу сюда еще ссылку https://gist.github.com/tondrej/bc12fdf82ad04d6738df8c2d50459231 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2017, 21:55:10 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Потихоньку разбираюсь с примером https://gist.github.com/tondrej/bc12fdf82ad04d6738df8c2d50459231 переписываю на делфи 7 Не все данные выгружаются, а только те, которые прописаны разрабом явно Код: pascal 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. выгрузка ftDateTime заработала сразу Выгрузку ftFloat сделал так, данные вроде выгружаются без ошибок: Код: pascal 1. 2. что делать со стрингами, вообще не представляю, знаний не хватает. Пробовал так, но в БД садится всякая хрень Код: pascal 1. 2. 3. 4. 5. в таблице делал поля и varchar, и nvarchar ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 17:25:05 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
andreymxв Оракл из Экселя 300 тыс строк - аж бегома чем уж вставляешь если не секрет? я файрдаком батч (правда не такой жирный) пуляю и если ошибок нет то весьма шустро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 11:14:32 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
Здесь ещё неплохой пример, на итальянском правда http://fsoriano.developpez.com/articles/db/oledb/delphi/ Только не могу скачать исходники Или доступа нету, или "протухли" ftp://ftp-developpez.com/fsoriano/archives/etw/delphi/fichiers/etw-sources.zip http://fsoriano.developpez.com/articles/db/oledb/delphi/fichiers/oledb-sources.zip http://fsoriano.developpez.com/articles/db/oledb/delphi/fichiers/oledb.docx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2017, 15:22:11 |
|
||
|
как наиболее быстро залить данные из Delphi 7 (датасет, массив) в MS SQL
|
|||
|---|---|---|---|
|
#18+
вроде получилось, тестирую выгрузка 100 тыс строк идёт около 40 сек, что вполне нормально для моих целей проверял на типах данных Код: pascal 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. осталось разобраться с порядками полей запросе и таблице, т.к. привязка идёт не по имени, а, похоже, как раз по порядку полей в таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2017, 16:17:07 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2041634]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
79ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 538ms |

| 0 / 0 |
