powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос про LBX и большие таблицы
15 сообщений из 15, страница 1 из 1
Вопрос про LBX и большие таблицы
    #34299259
Gildor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сабж, господа, имеется отчет в который идут данные из очень нехилого view'а, и программа из которой он формируется, естественно на Фоксе. Так вот время формирования для таблиц с относительно большим количеством строк превышает все разумные пределы, бывает что и 2,5 часа. Грешил на MS SQL сервер, но тот же SELECT выполняется в Query Analyzer'е примерно за 10-30 секунд. Теперь грешу на Фокс, если кто сталкивался, помогите пожалуйста.
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34299429
Ffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что формируется так долго - View или отчет ?
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34301560
Gildor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Именно отчет. Из view в QA выбирается достаточно быстро. Отчеты порядка 150 - 200 страниц.
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34302012
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приведите код который Вы выполняете из QA и из Фокса.
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34312996
Gildor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вызов из Фокса : "Select * from vslgotfirmCity where ControlPointID=?vsControlPoint.ControlPointID AND PrivilegeID=?vsPrivilege.PrivilegeID AND FirmID=?vsFirm.FirmID AND CityID=?vsCity.CityID ORDER BY vslgotfirmCity.PersonalAccountID".
View:
SELECT dbo.PrivilegeCompensation.PersonalAccountID, dbo.PrivilegeCompensation.PrivilegeID, dbo.PrivilegeCompensation.PCValue,
dbo.PrivilegeCompensation.ControlPointID, dbo.ServiceCategory.SCTarSoc, dbo.PersonalAccount.PersonalAccount, dbo.PersonalAccount.PAManLiv,
dbo.PersonalAccount.PASecHab, dbo.PersonalAccount.PATotalSp, dbo.PersonalAccount.PALivSp, dbo.PersonalAccount.PAHeatSp,
dbo.PersonalAccount.PAManReg, dbo.City.City, dbo.Street.Street, dbo.House.House, dbo.Flat.Flat, dbo.Privilege.Privilege, dbo.Charge.ChCalc100,
dbo.Charge.ChCalcSocNorm, dbo.Service.Service, dbo.Charge.FirmID, dbo.Firm.Firm, dbo.Man.ManID, dbo.Man.MANLastName,
dbo.Man.MANFirstName, dbo.Man.MANMiddleName, dbo.PrivilegeRightDocumentType.PrivilegeRightDocumentType,
dbo.PrivilegeRight.PRDocumentSeries, dbo.PrivilegeRight.PRDocumentNumber, dbo.PrivilegeRight.PRDocumentDate, dbo.Charge.ChConCoeff,
dbo.Charge.ChTmpCoeff, dbo.HousesAccount.HATmpCoeff, dbo.HousesAccount.HAConCoeff, dbo.City.CityID
FROM dbo.PersonalAccount INNER JOIN
dbo.Charge ON dbo.PersonalAccount.PersonalAccountID = dbo.Charge.PersonalAccountID INNER JOIN
dbo.City ON dbo.PersonalAccount.RegionID = dbo.City.RegionID INNER JOIN
dbo.Street ON dbo.City.RegionID = dbo.Street.RegionID AND dbo.City.DistrictID = dbo.Street.DistrictID AND
dbo.City.CityID = dbo.Street.CityID INNER JOIN
dbo.House ON dbo.Street.RegionID = dbo.House.RegionID AND dbo.Street.DistrictID = dbo.House.DistrictID AND
dbo.Street.CityID = dbo.House.CityID AND dbo.Street.StreetID = dbo.House.StreetID INNER JOIN
dbo.Flat ON dbo.PersonalAccount.RegionID = dbo.Flat.RegionID AND dbo.PersonalAccount.DistrictID = dbo.Flat.DistrictID AND
dbo.PersonalAccount.CityID = dbo.Flat.CityID AND dbo.PersonalAccount.StreetID = dbo.Flat.StreetID AND
dbo.PersonalAccount.HouseID = dbo.Flat.HouseID AND dbo.PersonalAccount.Building = dbo.Flat.Building AND
dbo.PersonalAccount.FlatID = dbo.Flat.FlatID AND dbo.House.RegionID = dbo.Flat.RegionID AND dbo.House.DistrictID = dbo.Flat.DistrictID AND
dbo.House.CityID = dbo.Flat.CityID AND dbo.House.StreetID = dbo.Flat.StreetID AND dbo.House.HouseID = dbo.Flat.HouseID AND
dbo.House.Building = dbo.Flat.Building INNER JOIN
dbo.Man ON dbo.PersonalAccount.PersonalAccountID = dbo.Man.PersonalAccountID INNER JOIN
dbo.PrivilegeRight ON dbo.Man.ManID = dbo.PrivilegeRight.ManID INNER JOIN
dbo.PrivilegeRightDocumentType ON
dbo.PrivilegeRight.PrivilegeRightDocumentTypeID = dbo.PrivilegeRightDocumentType.PrivilegeRightDocumentTypeID LEFT OUTER JOIN
dbo.HousesAccount INNER JOIN
dbo.Service INNER JOIN
dbo.ServiceCategory ON dbo.Service.ServiceID = dbo.ServiceCategory.ServiceID ON dbo.HousesAccount.ServiceID = dbo.Service.ServiceID ON
dbo.House.HouseID = dbo.HousesAccount.HouseID AND dbo.House.StreetID = dbo.HousesAccount.StreetID AND
dbo.House.CityID = dbo.HousesAccount.CityID AND dbo.House.DistrictID = dbo.HousesAccount.DistrictID AND
dbo.House.RegionID = dbo.HousesAccount.RegionID AND dbo.Charge.ServiceID = dbo.ServiceCategory.ServiceID AND
dbo.Charge.ServiceCategoryID = dbo.ServiceCategory.ServiceCategoryID AND
dbo.Charge.ControlPointID = dbo.ServiceCategory.ControlPointID RIGHT OUTER JOIN
dbo.Privilege INNER JOIN
dbo.PrivilegeCompensation ON dbo.Privilege.PrivilegeID = dbo.PrivilegeCompensation.PrivilegeID ON
dbo.PrivilegeRight.PrivilegeID = dbo.PrivilegeCompensation.PrivilegeID AND dbo.PrivilegeRight.ManID = dbo.PrivilegeCompensation.ManID AND
dbo.PrivilegeRight.PrivilegeID = dbo.Privilege.PrivilegeID AND dbo.Charge.ControlPointID = dbo.PrivilegeCompensation.ControlPointID AND
dbo.Charge.ServiceID = dbo.PrivilegeCompensation.ServiceID AND
dbo.Charge.PersonalAccountID = dbo.PrivilegeCompensation.PersonalAccountID AND
dbo.ServiceCategory.ServiceID = dbo.PrivilegeCompensation.ServiceID LEFT OUTER JOIN
dbo.Firm ON dbo.Charge.FirmID = dbo.Firm.FirmID
WHERE (dbo.PrivilegeCompensation.PCKey > 0)
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313022
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но это код из VFP, а из QA что посылаете?
Чем "?" заменены?
С уважением, Алексей
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313113
Gildor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В QA: Select * from vslgotfirmCity where ControlPointID=255 AND PrivilegeID=7AND FirmID=3 AND CityID=1 ORDER BY vslgotfirmCity.PersonalAccountID

Примерно так.
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313140
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GildorВ QA: Select * from vslgotfirmCity where ControlPointID=255 AND PrivilegeID=7AND FirmID=3 AND CityID=1 ORDER BY vslgotfirmCity.PersonalAccountID

Примерно так.
Ничего себе одинаковые запросы!!!
Вы из VFP вызовите:
Код: plaintext
Select * from vslgotfirmCity where ControlPointID= 255  AND PrivilegeID=7AND FirmID= 3  AND CityID= 1  ORDER BY vslgotfirmCity.PersonalAccountID 
через SQLEXEC и сравните скорость
А так... Вряд ли VFP умеет делать оптимизацию запроса, как ее делает SQL Server. Да и нет у него данных для оптимизации.
С уважением, Алексей.
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313166
Gildor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал подставить - те же зайцы, вид сбоку. :) Сам селект без превью этикетки проходит на ура. А вот с превью: подставляй, не подставляй - все едино.
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313279
Ffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На какой принтер настроен отчет: на локальный или сетевой ?
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313311
Gildor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FfffffffffffНа какой принтер настроен отчет: на локальный или сетевой ?
В основном на сетевой, но пробовали на соседней машинке, то же самое.
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313331
Fffffffffffff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отчет должен формироваться на локальный принтер. Иначе
мешают проблемы с сетью.

Сколько памяти на машине ?
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313382
Gildor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FffffffffffffОтчет должен формироваться на локальный принтер. Иначе
мешают проблемы с сетью.

Сколько памяти на машине ?

Вот, кстати, на это я сам грешил, сдается мне, что на машинах с большим объемом ОЗУ, скорость увеличивается пропорционально количеству памяти. Там где обычно формируем/печатаем 256 метров и сетевой притер, у меня 1.5 гига - сетевой принтер, у коллеги 512 метров и локальный принтер. Сейчас запустили у него, еще засекаем. Прошло уже минут 5-7.
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313404
Gildor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Итак, на машинке с 512 метрами и локальным принтером за 10 минут формируется 130 страниц.
...
Рейтинг: 0 / 0
Вопрос про LBX и большие таблицы
    #34313418
Gildor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Fffffffffffff, я думаю, что пока тему можно считать закрытой, остается только одно "НО", это была не самая большая база. :) Продолжу пробовать на остальных БД.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос про LBX и большие таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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