|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
День добрый! Стоит простая задачка сделать обновление справочника. Есть основная база на SQL и есть присылаемый из вне справочник DBF количество записей порядка 250 000. Т.е. сходу приходит только один вариант решения: Выборка всех записей из dbf , Циклический перебор отобранных записей с поиском в SQL. если такая же найдена, то Update если нет то addnew. Единственное что приходит в голову сделать для ускорения это использовать курсор adOpenForwardOnly, adLockReadOnly при чтении dbf. Может есть еще какие способы? например я знаю в 4GL есть возможность проверять без физического перемещения по запися. Есть ли аналог в SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:23 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_men, Таблицы SQL индексированы ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:24 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
1) а чем не устраивает SELECT ... WHERE ....? Зачем нужен перебор? 2) если на нужное поле есть уникальный индекс, можно просто попытаться добавить запись. Есил возникнет ошибка и запись не добавится, значит она уже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:31 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
bulk заюзать для загрузки всего из dbf в sql. далее запросом update+insert ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:32 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
так, может я недостаточно внимательно прочитал Alex_menЕсть основная база на SQLэто что значит? Какая СУБД конкретно? Если MSSQL - там есть классная штуковина - Linked Server. Таблица чужеродной базы станет как бы локальной. Кстати и причем тогда тут VB? Это надо делать процедурами на сервере. ЗЫ: ну и мой вариант №2 это не отменяет ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:34 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Konst_Onebulk заюзать для загрузки всего из dbf в sqlну или так ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:34 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Konst_One +100 Shocker.ProЕсил возникнет ошибка и запись не добавится, значит она уже есть.Обработка исключений еще медленнее перебора. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:36 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro1) а чем не устраивает SELECT ... WHERE ....? Зачем нужен перебор? 2) если на нужное поле есть уникальный индекс, можно просто попытаться добавить запись. Есил возникнет ошибка и запись не добавится, значит она уже есть. а SELECT...WHERE разве не подразумевает перебор? получается я встал на запись в DBF делаю SELECT в SQL и далее по обстоятельствам INSERT или UPDATE. Потом переход к следующей записи. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:43 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Konst_One, интересно тут надо почитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:43 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
мыслите кортежами(наборами) данных, а не отдельными строками в таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:46 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Proтак, может я недостаточно внимательно прочитал это что значит? Какая СУБД конкретно? Если MSSQL - там есть классная штуковина - Linked Server. Таблица чужеродной базы станет как бы локальной. да MSSQL. Как Линкед сервер влияет на быстродействие? Далее база многопользовательская, получается при замене файла мне надо проверять не сидит ли кто в таблице и не выполняется ли с ней какие авто процедуры я так понимаю? потом мне это дело надо еще дальше рассылать и лично я хотел только то что изменилось. А в этом случае мне придется кидать полную DBF что а великовато по размерам и требует ручного размещения на стороне удаленных клиентов с офлайн базкой. Shocker.ProКстати и причем тогда тут VB? Это надо делать процедурами на сервере. ЗЫ: ну и мой вариант №2 это не отменяет ну я не настолько хорошо знаком с этими процедурами, а не подразумевает ли это размещение исходной dbf на сервере? Имеются ввиду хранимки? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 17:53 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Konst_One, гм кортеж вроде как для многомерных наборов данных, а тут плоская таблица, никаких кубиков. Пойду себе книжицу по программированию SQL подищу. Есть на эту тему какие нибудь рекомендации по авторам изданиям? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 18:14 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Обновлять надо только одну таблицу в БД MSSQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 21:57 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_menа SELECT...WHERE разве не подразумевает перебор?не подразумевает, потому что будет сканирование дерева индекса а это на порядки быстрее, не говоря уж о том, что это будет делать сервер, не передавая никуда данные. Alex_menа MSSQL. Как Линкед сервер влияет на быстродействие?Тем, что он зальет к себе эту таблицу, дальше единственным INSERT-ом с JOIN-ом можно вставить несовпадающие записи. Самое главное в этом всем - уйти от перебора на клиенте - это самое худшее, что можно придумать Alex_menДалее база многопользовательская, получается при замене файла мне надо проверять не сидит ли кто в таблице и не выполняется ли с ней какие авто процедуры я так понимаю?Сервер сам решит эту задачу посредством блокировки таблицы во время выполнения запроса. Alex_menпотом мне это дело надо еще дальше рассылать и лично я хотел только то что изменилось.Это решается дополнительным столбцом в таблицы с временем создания записи (ну или версией, номером обновления и т.п.) Alex_menА в этом случае мне придется кидать полную DBF что а великовато по размерам и требует ручного размещения на стороне удаленных клиентов с офлайн базкой.Зачем? Опять же потом выбросить результат в DBF. отобранный по вышеназванному полю Alex_menа не подразумевает ли это размещение исходной dbf на сервере?на сервере или на сетевом диске, ну да, доступ должен быть даден серверу Вообще, чтобы четче понимать задачу, обрисуй порядки цифр, сколько записей в исходной таблице, сколько записей в DBF-ке и сколько записей добавляется за одно обновление. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2012, 23:34 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
AndreTM, Да только одну. Что то я в книгах по программированию SQL нигде описания bulk и как его правильно использовать не нахожу. Там максимум INSERT SELECT нашел. Да и запрос update+insert что то я не нашел ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2012, 17:55 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_menЧто то я в книгах по программированию SQL нигде описания bulk и как его правильно использовать не нахожу.И не найдешь. Это надо искать в книгах на конкретный сервер, множественная заливка данных есть не везде а там где есть реализована по разному. Если у тебя MS SQL, то читай главу посвященную bcp.exe. Alex_men Там максимум INSERT SELECT нашел. Да и запрос update+insert что то я не нашелТоже есть не везде. В MS SQL нет вообще. На MSSQL это делается тремя отдельными командами: select чтобы проверить есть ли строка с нужным первичным ключом, потом insert если такой строки нет и update если она уже есть. Либо двумя: безусловный delete строки с первичным ключом, потом insert. Это конечно не будет работать в случае с внешними ключами. Сразу предупрежу: bulk insert работает именно по этому принципу. Вернее bulk insert просто вставляет, удалять старое ты должен будешь сам. Еще там есть особенности по триггерам и логу... Alex_menВыборка всех записей из dbf , Циклический перебор отобранных записей с поиском в SQL. если такая же найдена, то Update если нет то addnew.Это самое надежное решение. Впрочем, можно еще попробовать делать bcp in во вспомогательную таблицу, потом insert из вспомогательной в главную тех первичных ключей который отсутствуют, потом update главной таблицы на основе вспомогательной, и последний шаг - полная очистка вспомогательной. Это будет чуть сложнее с SQL точки зрения, но намного быстрее чем цикл на клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2012, 21:43 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
White OwlНа MSSQL это делается тремя отдельными командами: select чтобы проверить есть ли строка с нужным первичным ключом, потом insert если такой строки нет и update если она уже есть.можно обойтись без SELECT если строка одна - пытаться сделать UPDATE и смотреть @@rowcount, если 0 - делать INSERT если строк несколько - лучше запихать их в отдельную таблицу, а затем два пакетных запроса - INSERT и UPDATE, приджойнив таблицы между собой. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2012, 22:08 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
White Owlпотом insert из вспомогательной в главную тех первичных ключей который отсутствуют, потом update главной таблицы на основе вспомогательнойПочему сразу не вставить и ключи и прочие данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2012, 22:50 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Ну да. Суть в чём: таблицу в самой БД нам жалко, - она в это время может быть заюзана; опять же, сервер на ходу и нагружен... С другой стороны, присланная DBF-ка (ну, копия её) нам по-барабану - мы её можем иметь, как хотим. Вот её грузим в отдельную таблицу - и над этой таблицей работаем - удаляем из нее дубли, а остальные записи помечаем для UPDATE/INSERT. А затем двумя движениями вливаем в наш справочник... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2012, 23:13 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Так все таки, правильно я понял что одним запросом я не могу сделать так: найти запросом все совпадающие записи (в SQL табличке с DBF) и проапдейтить этот набор записей одним запросом? всетаки нужно построчно? ну и соответственно потом просто все остальные записи добавить ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 10:11 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_menТак все таки, правильно я понял что одним запросом я не могу сделать так:двумя запросамиAlex_menвсетаки нужно построчно?нет, это одним запросом (для всех записей сразу) Alex_menну и соответственно потом просто все остальные записи добавитьэто вторым запросом ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 10:44 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Вот теперь определился пошел работать ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 11:29 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Хотел уточнить (просто раньше никогда не делал UPDATE целыми таблицами) правильно ли я понимаю: Код: vbnet 1. 2. 3.
а INSERT Соответственно Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 11:46 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Таблицу t2 тоже надо объявить в запросе что-то типа Код: sql 1. 2. 3.
или Код: sql 1. 2. 3. 4.
я предпочитаю первую запись, она понятнее ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 12:06 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
В update одна ошибка: Код: sql 1. 2. 3. 4.
В insert две. values это набор конкретных значений для вставки одной записи. А условие t1.p0<>t2.p0 вставит все записи из t2 для каждой записи из t1 кроме той, значения p0 которых равны. То есть в результате вставится (count(t2.*) - 1) * count(t1.*) записей. Правильно это делается так: Код: sql 1. 2. 3.
Если записей в t1 много, лучше перед этим очистить t2 от уже обработанных записей: Код: sql 1.
Очистка от записей, которые были обновлены ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 12:12 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
AntonariyЕсли записей в t1 многоЗабыл, после очистки insert делать без where. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 12:29 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Antonariy, Спасибо!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 13:47 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Antonariy, Вопрос пытаюсь забросить данные из внешней DBF во временную таблицу следующим кодом Код: vbnet 1.
Получаю ошибку Incorrect syntax near 'TEMPORARY' Пробовал делать так Код: vbnet 1.
Эффект тот же где я заблуждаюсь? или надо вначале создать временную а потом перелить туда данные? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 15:07 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_men, Это не синтаксис MSSQL 1) временные таблицы в MSSQL имеют приставку # перед именем. типа SELECT * INTO #tm 2) IN там тоже не работает, кури OPENQUERY (когда тыришь откуда-то код, не забывай смотреть, к какой СУБД он относится) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 15:14 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Вы правы. Оновы кода брал из книги Криса Фиайли SQL QUICK START. Я не дочитал примечания. Там дается синтаксис для разных СУБД. Обычно основной идет для MSSQL. а тут еще уточняющее примечание. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 15:22 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Еще хочу уточнить, а в VB по SQL синтаксису ориентироваться надо непосредственно на MSSQL или на TransactSQL? Вообще я не пойму зачем мелкософту так много диалектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 15:33 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
ms sql - это сервер sql, который использует диалект Transact SQL (T-SQL). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 15:35 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_menа в VB по SQL синтаксису ориентироватьсяVB по барабану - он отправляет текстовую строку, которую уже будет интерпретировать СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 15:39 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Konst_One, Виноват очепятка имелся ввиду JetSQL. Или оный только для MDB хранилищ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 15:40 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro, понял, ориентироваться по СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 15:40 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Что не так делаю? пытаюсь зацепиться через ODBC. если открываю через connection.open проблем нет могу делать выборку из DBF а если вот так как ниже то говорит не указан провайдер или источник не найден. Строчку скопировал из UDL файла Код: vbnet 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 17:15 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 17:31 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Antonariy, А с помощью ODBC никак? просто хотелось бы более универсальную настройку сделать. Если нет видимо настройку путей надо будет в базе хранить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 17:54 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Через dsn что ли? А у вас mssql на том же компьютере, где выполняется cn_base.Execute? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 18:10 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Antonariy, В данном случае да, а вообще предполагается базу держать на сервере ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 18:13 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Тогда и dsn должен быть на сервере. И сервер должен иметь доступ к dbf-файлам. Либо нужно будет подключать ему шару сетевым диском, либо в dsn указывать сетевой путь. Да и в предыдущем примере соответственно не c:\folder. А открывать dsn так: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2012, 18:21 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Не пойму вроде все верно сделал, запрос не пашет. постоянно выдает "Время истекло". что я мог упустить Код: vbnet 1. 2.
если прописываю Код: vbnet 1.
то таблица в файле не найдена :( ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 11:27 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Вот еще такой вопрос если делать импорт визардом, то можно сохранить скрипт выполнения импорта. Этот скрипт можно прикрутить к программе или лучше не стоит? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 12:07 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_menНе пойму вроде все верно сделал, запрос не пашет. постоянно выдает "Время истекло". что я мог упуститьПопробуй SELECT top 1 * FROM sw_list Alex_men Этот скрипт можно прикрутить к программе или лучше не стоит?В принципе можно, но лучше не стоит. Я пробовал, капризная штука. Ровно в том виде, который был сгенерен, работает, а делаешь шаг влево-вправо в плане добавления какой-никакой автоматизации и универсализации, перестает работать, выдает малопонятные ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 12:40 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Нашел еще вот такой код. и тоже не слава богу. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
говорит слишком мало параметров, требуется 13. Вот не ожидал тут такой засады :( ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 13:04 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Antonariy, Да TOP10 отбирает пуле, а вот полную таблицу переварить не может :( ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 13:13 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
AntonariyПопробуй SELECT top 1 * FROM sw_list TOP 100 000 тоже отбирает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 13:15 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_menговорит слишком мало параметров, требуется 13.дык, значит в таблице sw_list нет всех этих полей name_swift,iso_dig,iso_lat2,iso_lat3 и т.п. как раз количеством 13 штук ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 13:18 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro, так я их оттуда и списал (правда открывал аксесом). Может они как то иначе описываться должны? и SQL тож нашел их визаром ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 13:22 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.Pro, и еще одна странность он говорит то 3 то 13 параметров ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 13:32 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_menAntonariyПопробуй SELECT top 1 * FROM sw_list TOP 100 000 тоже отбираетНу значит действительно "время истекло". Нужно увеличить таймаут выполнения команд. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 13:42 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Antonariy, я правильно понимаю это в настройках ODBC делается? а то я уже там 200 поставил а все мало ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 13:57 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Cl_Base.QueryTimeout ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 14:01 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Antonariy, сейчас с connetionTimeOut поиграюсь но 50 там уже не хватает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 14:10 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
connetionTimeOut это таймаут установки соединения, а не выполнения запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 14:12 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Shocker.ProCl_Base.QueryTimeout Я прошу прощения, малость запутал Вас. Я просто разные варианты прокручиваю. По мере нахождения решений в форуме и литературе. пока самый рабочий вариант Код: vbnet 1. 2. 3.
за исключением того что отваливается по тайм ауту. 150 тыс записей отбирает, а на 200 уже привет, у меня в таблице что то околи 230 тыс. я так понимаю надо параметры OPENROWSET копать ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 14:25 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
ТС, вы задачу "к верх ногами" решаете. вам нужно делать это всё на стороне сервера. будет быстрее и проще. а так, как вы сейчас пытаетесь, никакого ускорения не добьётесь, т.к. на клиента пытаетесь данные все вытягивать, что просаживает производительнось ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 14:29 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Alex_men, Век живи век учись Код: vbnet 1.
Спасибо Ребята за подсказки! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 14:33 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Konst_One, Почему? Вроде как он на сервер пытается базу залить ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 14:46 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
зачем же таким грубым способом то? на сервере есть специальные средства для этого. -визарды импорта/экспорта -bcp -bulkcopy -SSIS, наконец. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 14:49 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
How to: Connect to a dBASE or Other DBF File (MS SQL Server 2008): http://msdn.microsoft.com/en-us/library/aa337084.aspx читайте ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 15:03 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Konst_One, Все это хорошо только есть некоторые но: 1) у меня SQL2000 2) заливку отдаю в руки пользователей а им на сервере делать нечего, а соответственно и визордами не воспользуешся (во всяком случае я пока не знаю как пользователь в сети сможет его использовать со своей машины. 3) К моему стыду я слишком мало знаю, а вот литературы по таким вещам я покамест не нашел. Читаю форум и хелп. 4) чем метод который я применил плох? (спрашиваю в целях расширения кругозора и познаний) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 17:03 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Konst_One, а чем плохо настроить соединение через ODBC конкретного компьютера пользователя и использовать это соединение? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 17:07 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
> Автор: Alex_men > Все это хорошо только есть некоторые но: > 1) у меня SQL2000 > 2) заливку отдаю в руки пользователей а им на сервере делать нечего, а соответственно и визордами не > воспользуешся (во всяком случае я пока не знаю как пользователь в сети сможет его использовать со своей машины. > ... Хм, у меня похожая ситуация, я скачал отсюда Microsoft OLE DB Provider for Visual FoxPro 9.0 и проставил его на сервере с SQL Server 2000. По инструкции настроил связь, собственно вся связь - это указание пути к папке с dfb и выбор Collation равный Collation базы приемника, дабы не прописывать из при каждом текстовом поле :) После сделал ХП в которой два запроса, один на обновление, второй на вставку того что не обработалось при обновлении. Например так: Код: 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.
И пользователю досталась только кнопка, которая вызывает выполнение этой процедуры Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 17:34 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Игорь Горбонос, А файл опять же этой кнопкой копируете на сервер? или папку расшарили? Просто получение справочника входит в обязанности пользователя и не очень хотелось бы чтобы он дергал для такой ерунды как положить файл в нужную папку ИТ отдел. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 17:40 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
> Автор: Alex_men > Игорь Горбонос, > А файл опять же этой кнопкой копируете на сервер? или папку расшарили? Папку расшарил > Просто получение справочника входит в обязанности пользователя и не очень хотелось бы чтобы он дергал для такой > ерунды как положить файл в нужную папку ИТ отдел. У меня справочники получаются из 1с. И они так-же складываются в эту шару. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 17:57 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Игорь Горбонос, +1 ТСу как раз это и надо сделать. практически готовое промышленное решение ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2012, 18:23 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Игорь Горбонос, Хорошо, а вот клиентская часть (клиентское место может быть в другом городе). там своя база mdb там ведь хранимку такую не сделаешь? насколько я понимаю ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2012, 09:43 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
тогда делайте репликацию, избавляйтесь от mdb, ставьте локальный sql express ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2012, 10:53 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Konst_One, моя беда в том, что я не пока знаю как отредактировать скрипт инсталла чтобы развернуть базу, приаттачить ее и заполнить ее нужными данными. А передавать многостраничное описание для установки это не дело. Поэтому пока mdb и выбрал. сроки жмут :( ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2012, 11:20 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
Вопрос описание внешних драйверов в разных операционках различается? Столкнулся с тем что запрос к выше обсуждаемой DBF работавший на ХР не хочет работать на 7-ке ни в какую. Говорит источник данных не найден и не определен драйвер по умолчанию ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 11:38 |
|
Есть ли способы ускорить процесс обновления справочника?
|
|||
---|---|---|---|
#18+
> Автор: Alex_men > Вопрос описание внешних драйверов в разных операционках различается? Столкнулся с тем что запрос к выше > обсуждаемой DBF работавший на ХР не хочет работать на 7-ке ни в какую. Говорит источник данных не найден и не > определен драйвер по умолчанию Нет, все давно стандартизировано. Вариант только если 7-ка 64-bit тогда драйвера могут стоять тоже 64-х битные. Нужно найти и поставить 32-х битные. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2012, 12:00 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2157583]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 187ms |
0 / 0 |