powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Оптимизация SQL
6 сообщений из 6, страница 1 из 1
Оптимизация SQL
    #36182401
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю выборку из таблицы:
SELECT n_plat, s_ob,;
000000000.00 as s_opl;
FROM c0203 INTO CURSOR _x1 WHERE sh_post = __sh AND data < _date;
UNION ALL SELECT n_plat, 000000000.00 as s_ob, s_opl;
FROM c0205 WHERE shifr = __sh AND data < _date
в обеих таблицах есть таги:
C0203 tag ShifrSQL - sh_post;
tag DataSQL - data;
С0205 tag ShifrSQL - shifr;
tag DataSQL - data

Количество записей в С0203 - 59000, C0205 - 104000. В выборке - 71 запись
Время выборки 3,475с

Для сравнения делаю программную выборку:
CREATE CURSOR _x1 (n_plat C(6), s_ob N(15,2), s_opl N(15,2))
SELECT C0203
SEEK __sh
SCAN WHILE sh_post = __sh FOR data < _date
INSERT INTO _x1 (n_plat, s_ob) VALUES (C0203.n_plat, C0203.s_ob)
Ends
SELECT C0205
SEEK __sh
SCAN WHILE shifr = __sh FOR data < _date
INSERT INTO _x1 (n_plat, s_opl) VALUES (C0205.n_plat, C0205.s_opl)
Ends

время выборки 0,078с

оптимизация Select идет по тегам DataSQL.

Может можно заставить Select использовать по ShifrSQL?
...
Рейтинг: 0 / 0
Оптимизация SQL
    #36182680
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед Select SET ORDER TO 0 для каждой из таблиц делали ?
какой тип и размерность полей sh_pos и shifr ?
откуда берется переменная __sh для условия , её тип и размерность совпадают с sh_pos и shifr ?
Также проверьте каждую часть Uniona отдельно.
...
Рейтинг: 0 / 0
Оптимизация SQL
    #36182822
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Версия FoxPro?
2. Текущая настройка SET COLLATE и IDXCollate() для тегов ShifrSQL?
...
Рейтинг: 0 / 0
Оптимизация SQL
    #36183185
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тестовая программа:

CLOSE DATABASES all
CLEAR

USE \\Servdos\iola\ASUP21_debug\dbf\с02\C0203.DBF
USE \\Servdos\iola\ASUP21_debug\dbf\с02\c0205.dbf IN 0
USE \\Servdos\iola\p49\dbf\p5101.dbf IN 0
USE \\Servdos\iola\p49\dbf\p5104.dbf IN 0
CREATE CURSOR Spisok1 (Data D, Nomer C(10), summa1 N(12,2), summa2 N(12,2), nado L)
CREATE CURSOR Spisok2 (Data D, Nomer C(10), summa1 N(12,2), summa2 N(12,2), nado L)


_date=DATE() && This.form2.one_dat1.data
_sh='005325'
__sh=SUBSTR(_sh,3)
STORE SECONDS() TO seco, _seco, seco_
IF .t.
SET ORDER TO
=SYS(3054,12,'cmemv')
SELECT n_plat, s_ob,;
000000000.00 as s_opl;
FROM c0203 INTO CURSOR _x1 WHERE sh_post = __sh AND data < _date;
UNION ALL SELECT n_plat, 000000000.00 as s_ob,;
s_opl;
FROM c0205 WHERE shifr = __sh AND data < _date
?1,SECONDS()-seco_
seco=SECONDS()
*****************
C0203.sh_post C(4)
C0205.shifr C(4)
************************
Разбивал Union на 3 части: 1-выборка из C0203, 2-выборка из C0205, 3-слияние

время работы Union - 6.302с, разбитого на 3 части 6,598с.
*******************************************************
Отчет об оптимизации запроса:

SELECT n_plat, s_ob, 000000000.00 as s_opl FROM c0203 INTO CURSOR _x1 WHERE sh_post = __sh AND data < _date UNION ALL SELECT n_plat, 000000000.00 as s_ob, s_opl FROM c0205 WHERE shifr = __sh AND data < _date

Using index tag Datasql to rushmore optimize table c0203
Rushmore optimization level for table c0203: partial
Using index tag Datasql to rushmore optimize table c0205
Rushmore optimization level for table c0205: partial
...
Рейтинг: 0 / 0
Оптимизация SQL
    #36185483
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема оказалась в том, что исходные таблицы в 866 странице. При этом SEt collate to RUSSIAN не помогло. Перевод в 1251 и set collate to MACHINE дало следующие результаты:
1. UNION 0.08с
2. 3 запроса 0,08с
3. Программная выборка 0.081с
...
Рейтинг: 0 / 0
Оптимизация SQL
    #36185549
glamisПроблема оказалась в том, что исходные таблицы в 866 странице. При этом SEt collate to RUSSIAN не помогло.Странно было бы если б помог... Как еще порядок сортировки мог повлиять на кодировку?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Оптимизация SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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