powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Медленный запрос с MS Sql server
11 сообщений из 11, страница 1 из 1
Медленный запрос с MS Sql server
    #39946543
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. После замены основного сервера на нем медленно выполняются запросы VFP к MS sql.
Возможно что с драйверами или настройками MS sql server.
На компьютере установлен Windows server 2012 r2 standart.
на него сначала установили SQL server 2017 developer и запросы выполнялись нормально( возможно ошибаюсь), но т.к. не рботали корректно внешние объекты через advantage, sql server переустановили на ms sql 2012(11.0.2100).

Запускаю на этом сервере следующие команды

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
tcDataBase = 'sls_new'
tcServer='192.168.1.1'
lcPassword='111'

lcDriver = 'Sql server'
*lcDriver = 'Sql server native client 11.0'

hConn = SQLSTRINGCONNECT('UID=sa;PWD='+lcPassword+';DRIVER='+lcDriver+';SERVER='+tcServer+';APP=Microsoft Visual FoxPro;DATABASE='+tcDataBase+';LANGUAGE=русский')

lnRes=0
lcsql = "select * "+;
  " FROM  [sls_new].[dbo].contragent"
  
lnRes=SQLEXEC(hConn,lcsql ,"curCurrentID") 

SQLDISCONNECT(hConn)


Происходит подключение и выполняется выборка данных, но очень медленно, в таблице около 15к записей. меняю адрес сервера на тестовый и запускаю - ситуация аналогичная. Если этот же скрипт запустить на тестовом компьютере и подключатся к тестовой базе и к базе на новом сервере - выполняется с нормальной скоростью. Проверял с драйверами "Sql server" и "Sql server native client 11.0", но результат одинаковый. в чем может быть причина?
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39946551
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lg
...в чем может быть причина?

Причин может быть очень много и они скорее всего не зависят от FoxPro.

Вы пробовали выполнить аналогичный запрос на машине клиента через "Microsoft SQL Management studio"?
Каково время выполнения запроса?
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39946554
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch,

Этот же запрос выполняю из SQL management studio запущенном на основном сервере - выполнение проходит за секунду.

Этот скрипт на FoxPro запускаю с тестового компьютера, но с подключением к базе на основном сервере - выполняется за секунду.
Этот же скрипт запускаю на основном сервере с подключением к базе на этом же сервере - только на подключение уходит 2-3 секунды.
Когда на основном сервере запускается скрипт в котором загружается много записей через команду insert, то загрузка происходит примерно 4-5 записей в секунду, ранее на загрузку 60-70к записей уходило менее минуты.

Пробовал переустанавливать sql server, foxpro. Но не помогает. Антивирус пока не установлен, встроенный фаервол отключен.
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39946739
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lg
Этот же запрос выполняю из SQL management studio запущенном на основном сервере - выполнение проходит за секунду...

Если мне не изменяет память в 2012 сервере были изменения на поддрежку "OLE DB " vs "ODBC".
Посмотрите в сторону измения драйвера на ODBC. немного дополнительной информации по соединиению FoxPro с различными источниками данных .

Я бы ещё попробовал создать 32 bit DSN на сервере и сделать запрос через него (вместь прямого обращения к клиенту меняя SQL ODBC drivers).

P.S. А Вы пробовали "Microsoft SQL Management studio" подсоединить через TCP/IP protocol '192.168.1.1' ?
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39946889
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch,

Sergey Ch


P.S. А Вы пробовали "Microsoft SQL Management studio" подсоединить через TCP/IP protocol '192.168.1.1' ?

Это при подключении указать не имя сервера а его IP? При таком соединении запрос выполняется из студии нормально. Из Microsoft SQL Management studio запросы проходят без проблем не зависимо к чему было подключение(основной сервер по имени или ip либо база на тестовом сервере открытая с основного)

Менять драйвер на ODBC или другой - затруднительно, т.к. придется переписывать и перепроверять в нескольких программах и утилитах, хотелось бы докопаться что здесь конфликтует.
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39946974
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lg
Менять драйвер на ODBC или другой - затруднительно, т.к. придется переписывать и перепроверять в
нескольких программах и утилитах, хотелось бы докопаться что здесь конфликтует.

Я так понимаю что у Вас проблема в запуске Вашего приложения непосредственно на сервере где расположен MS SQL Server?

А если попробовать убрать "+';LANGUAGE=русский" из Вашей Connection string ради эксперимента?

Если в запросе убрать скобки (just in case): " SELECT * FROM dbo.contragent ".

Если Вы откроете "ODBC Data Sources (32-bit)" - есть ли там у Вас оба клиента в списках: "Sql server" и "Sql server native client 11.0" во вкладке "drivers"?

Ради эксперимента я бы создал очень маленькое тестовое приложение на FoxPro где бы поэкспериментировал со всеми доступными драйверами.

Если бы ничего не получилось, то пришлось бы устанавливать на сервере procmon application from Microsoft (it is free). И там бы уже смотрел, что Ваше приложение конкретно запрашивает и получает в ответ. Долгий и трудный путь (так как будет очень длинный log), но там будет видно всё что происходит.
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39946980
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, забыл спросить - а Вы смотрели Ваши запросы из FoxPro на сервере непосредстванно в "SQL Profiler"?
Умеете им пользоваться?
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39946995
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch
vova_ukr_lg
Менять драйвер на ODBC или другой - затруднительно, т.к. придется переписывать и перепроверять в
нескольких программах и утилитах, хотелось бы докопаться что здесь конфликтует.

Я так понимаю что у Вас проблема в запуске Вашего приложения непосредственно на сервере где расположен MS SQL Server?

А если попробовать убрать "+';LANGUAGE=русский" из Вашей Connection string ради эксперимента?

Если в запросе убрать скобки (just in case): " SELECT * FROM dbo.contragent ".

Если Вы откроете "ODBC Data Sources (32-bit)" - есть ли там у Вас оба клиента в списках: "Sql server" и "Sql server native client 11.0" во вкладке "drivers"?

Ради эксперимента я бы создал очень маленькое тестовое приложение на FoxPro где бы поэкспериментировал со всеми доступными драйверами.

Если бы ничего не получилось, то пришлось бы устанавливать на сервере procmon application from Microsoft (it is free). И там бы уже смотрел, что Ваше приложение конкретно запрашивает и получает в ответ. Долгий и трудный путь (так как будет очень длинный log), но там будет видно всё что происходит.

LANGUAGE=русский убрал, запрос переписал в "select top 10 * FROM [dbo].contragent"
драйвера SQL serer и native client 11, есть. в скрипте поставил замер скорости после подключения и после выполнения запроса. с момента запуска до установления соединения ~2.8-3 сек, до окончания выполнения - 15-16 сек. даже установление соединения в 3 секунды это много.
в профайлере во время подключения вызывается
Код: plsql
1.
2.
3.
4.
5.
6.
select 504,c.name,c.description,c.definition from master.dbo.syscharsets c where c.id = convert(tinyint, databasepropertyex ( db_name() , 'sqlcharset'))
select USER_NAME() select usertype,type,name from systypes where usertype>=257
exec sp_datatype_info 1
exec sp_datatype_info 12
exec sp_datatype_info -2
exec sp_datatype_info -3


далее выполняется
Код: sql
1.
select top 10 * FROM  [dbo].contragent

здесь reads=2 duration=0 (почему то)
и после выполняется отключение. с duration = ~16000
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39947225
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lg
и после выполняется отключение. с duration = ~16000

То есть до "отключения" данные не приходят на клиент?

Вот похожее обсуждение

Здесь возможное решение тоже что и я Вам уже советовал - попробовать сделать System DSN 32 bit на сервере и из Вашего тестового приложения сделать запрос. Надо попытаться удалить из нашего случая возможность того, что FoxPro как-то использует 64bit driver (хотя это и маловероятно).

Ещё он пишет про порт. Я так понимаю что у Вас стандартный 1433 и так как "SQL management studio" работает быстро, то проблем с занятостью порта у Вас нет.

P.S. Я так думаю что Вы уже удаляли и устанавливали заново "Microsoft SQL Server 2012 Native client"?
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39950061
vova_ukr_lg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за помощь, сегодня по ряду других причин пришлось переустановить систему. Данный вопрос закрылся после переустановки, остались вопросы другого плана, но это уже по настройке Windows.
...
Рейтинг: 0 / 0
Медленный запрос с MS Sql server
    #39950416
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vova_ukr_lg
... сегодня по ряду других причин пришлось переустановить систему....

Хорошее решение, иногда самое простое и быстрое.

Удачи!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Медленный запрос с MS Sql server
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]