powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Почему Select медленно работает?
41 сообщений из 41, показаны все 2 страниц
Почему Select медленно работает?
    #39621172
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица Schet1 и ее копия scc1
выполняю:
SELECT kod, ugol FROM scc1 WHERE oper = '007001' AND !EMPTY(ugol) INTO CURSOR v3
время работы = 0
SELECT kod, ugol FROM schet1 WHERE oper = '007001' AND !EMPTY(ugol) INTO CURSOR v1
время работы=25сек.

Разница в таблицах - Schet1 входит в dbc, есть триггеры Insert, Update, Delete.
Таблица scc1 - свободная. Получена из Schet1 командой Copy to scc1
В обеих есть индекс Oper - key()='Oper'
Ориентировочное число записей 5 500 000. Выборка ~85 000.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621179
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создание индекса и выполнение запроса при одинаковом collation ?

Что показывает
Код: sql
1.
sys(3054)
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621184
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis,

1. Команда копирования должна быть такой
Код: sql
1.
Copy to scc1 with CDX


2. Нужен индекс не только на OPER, но и на !EMPTY(ugol).
Код: sql
1.
INDEX on !EMPTY(ugol) tag e_ugol binary


3. Создание индекса по строке (OPER) и выполнение запроса должны быть при одинаковых Collation.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621185
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
sys(3054,12) для Schet1:

SELECT kod, ugol FROM schet1 WHERE oper = '007001' AND !EMPTY(ugol) INTO CURSOR v1

Using index tag Sql_oper to rushmore optimize table schet1
Rushmore optimization level for table schet1: partial

для scc1:

SELECT kod, ugol FROM scc1 WHERE oper = '007001' AND !EMPTY(ugol) INTO CURSOR v3

Using index tag Sql_oper to rushmore optimize table scc1
Rushmore optimization level for table scc1: partial
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621189
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
Таблицы одинаковы, индексы тоже, а время работы в одном случае 0, в другом -25сек.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621190
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis,

забыл еще про set deleted. Если стоИт в on, то еще нужен индекс
Код: sql
1.
INDEX on Deleted() tag _del binary


И тогда можно будет увидеть Full вместо partial.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621192
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть еще подозрение, что в копии записи отсортированы физически. Проверю только вечером.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621193
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
есть
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621195
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisSergey Sizov,
Таблицы одинаковы, индексы тоже, а время работы в одном случае 0, в другом -25сек.Еще раз - важны не только данные и выражения индексирования, но и Collation при СОЗДАНИИ индекса и при ВЫПОЛНЕНИИ запроса. Вы же индекс на вторую таблицу не скопировали (а могли, командой которую я показал)? Вы же его потОм сделали? Какой collation был непосредственно перед выдачей команды Index on... ? А какой при выполнении вашего запроса?
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621196
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisSergey Sizov,
естьЧто есть?
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621207
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisDima T,
sys(3054,12) для Schet1 ...
Разницы никакой, значит дело не в фоксе
glamisРазница в таблицах - Schet1 входит в dbc, есть триггеры Insert, Update, Delete.
Таблица scc1 - свободная. Получена из Schet1 командой Copy to scc1
В обеих есть индекс Oper - key()='Oper'
Ориентировочное число записей 5 500 000. Выборка ~85 000.
1. Триггеры ничем не мешают, т.к. выполняются только при изменении.
2. Если таблицы в сети и Schet1 используется несколькими пользователями, а scc1 только тобой, то после копирования scc1 даже находясь в сети все-равно закэшируется на твоем компе, т.е. по скорости будет как локальная.
Недавно эту тему поднимали
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621212
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizovно и Collation при СОЗДАНИИ индекса и при ВЫПОЛНЕНИИ запроса.
ИМХО Collation одинаковый, иначе рашмор просто не стал бы индекс использовать 21289919
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621215
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey Sizovно и Collation при СОЗДАНИИ индекса и при ВЫПОЛНЕНИИ запроса.
ИМХО Collation одинаковый, иначе рашмор просто не стал бы индекс использовать 21289919 Это справедливо для самой последней версии фокса. В предыдущих сервис паках было разное.
В любом случае предложенные мной индексы всяко не помешают.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621232
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
Индекс Delete()
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621237
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisSergey Sizov,
Индекс Delete()Однако, он не используется. Он точно Binary?
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621245
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
set('collate') = MACHINE
cp Schet1 1251, cp ssc1 1251
fox Visual FoxPro 09.00.0000.5815 for Windows

Кроме того:
Select kod,ugol from Schet1 where oper = '007001' into cursor v4
0сек.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621251
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SizovglamisSergey Sizov,
Индекс Delete()Однако, он не используется. Он точно Binary?

Set delete не включено.

Эти примеры я выполняю на одной машине в commande, последовательно друг за другом. Среда fox одинакова.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621252
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisfox Visual FoxPro 09.00.0000.5815 for WindowsНе самый последний. Обязательно обновить.[/quot]

Кроме того:
Select kod,ugol from Schet1 where oper = '007001' into cursor v4
0сек.[/quot]Ну так я ж не просто так про индекс по !Empty(ugol) писал. Как раз его отсутствие для Schet1 и показывает разницу в быстродействии для Schet1.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621257
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisSergey Sizovпропущено...
Однако, он не используется. Он точно Binary?

Set delete не включено.

Эти примеры я выполняю на одной машине в commande, последовательно друг за другом. Среда fox одинакова.Отлично. Теперь надо добиться такого:

Select kod,ugol from Schet1 where oper = '007001' and !Empty(ugol)

Using index tag Sql_oper to rushmore optimize intermediate result
Using index tag E_ugol to rushmore optimize intermediate result
Rushmore optimization level for intermediate result: full
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621268
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,

Но из scc1 эта же выборка при той же структуре, с теми же индексами, с теми же данными копируется МГНОВЕННО.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621272
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisSergey Sizov,

Но из scc1 эта же выборка при той же структуре, с теми же индексами, с теми же данными копируется МГНОВЕННО.Она может быть закэширована, она/ее индексы могут лежать в более "удобном" месте диска и т.д. Про одинаковые индексы можно говорить только при копировании этой таблицы вместе с индексами.
Вы собираетесь лечить пациента гаданиями? Или таки возьмёте на вооружение технические средства и пойдёте искать где собака порылась?
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621274
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisКроме того:
Select kod,ugol from Schet1 where oper = '007001' into cursor v4
0сек.
Это очень странно. Не могу придумать ни одного объяснения.

Если тут же после выполнить
Код: sql
1.
Select kod,ugol from Schet1 where oper = '007001' AND !EMPTY(ugol)  into cursor v4


точно тормозит? Может проблему уже нет?
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621282
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SizovТеперь надо добиться такого:

Select kod,ugol from Schet1 where oper = '007001' and !Empty(ugol)

Using index tag Sql_oper to rushmore optimize intermediate result
Using index tag E_ugol to rushmore optimize intermediate result
Rushmore optimization level for intermediate result: full
ИМХО лучше не надо. Фокс все-равно возьмет какой-то один индекс в качестве основного и будет сначала выбирать по нему. Если этим индексом окажется E_ugol, то будет тормоз.

Если уж добиваться "full", то индексом по oper+ugol

PS "full" не означает что самый быстрый способ выбран.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621288
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey SizovТеперь надо добиться такого:

пропущено...

ИМХО лучше не надо. Фокс все-равно возьмет какой-то один индекс в качестве основного и будет сначала выбирать по нему. Если этим индексом окажется E_ugol, то будет тормоз.

Если уж добиваться "full", то индексом по oper+ugol

PS "full" не означает что самый быстрый способ выбран.Сударь, вы думаете я это в текстовом редакторе написал? Вам показать код, который выводит сие сообщение? Извольте.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sys(3054, 12, '_cliptext')
Set Deleted Off
Create Cursor Schet1 (oper c(6), kod int, ugol int)
Index on oper tag sql_oper
Index on Empty(ugol) tag E_ugol binary
Select kod,ugol from Schet1 where oper = '007001'
Select kod,ugol from Schet1 where oper = '007001' and !Empty(ugol)
Clear All
Sys(3054,0)


Потом расскажете про использование только одного индекса.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621289
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,

Мне теперь для каждой выборки строить свои индексы? В таблице около 30 полей и что, по каждому строить индекс?
Насчет кеширования - только что сбросил таблицу по сетке на другой ресурс, с другим именем и сделал выборку в другой сессии fox - МГНОВЕННО.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621298
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisSergey Sizov,

Мне теперь для каждой выборки строить свои индексы? Можете построить чужие. Вам решать что для вас важнее - скорость работы программы, место на диске или ваша лень.В таблице около 30 полей и что, по каждому строить индекс? Стандартный идиотский вопрос... Откуда взялось слов "все"? Вроде я показал, что индексы нужны по выражениям в предложении where? Если нет, то откуда "все"?
К тому же, индексы именно для ускорения выполнения запросов и создаются, а не "абы были". И под конкретные запросы, а не абы какие. Под предложенный вами запрос нужны такие.Насчет кеширования - только что сбросил таблицу по сетке на другой ресурс, с другим именем и сделал выборку в другой сессии fox - МГНОВЕННО.Из чего можно сделать вывод, что дело, скорее всего не в бобине. Как минимум не в кэшировании. Проверяйте остальное окружение.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621322
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SizovСударь, вы думаете я это в текстовом редакторе написал? Вам показать код, который выводит сие сообщение? Извольте.
...
Потом расскажете про использование только одного индекса.
"На заборе тоже написано, а забором нету!" (с)

Я утверждаю что "Rushmore optimization level for intermediate result: full" не означает "Найдено наилучшее решение".
При некоторых обстоятельствах решение может оказаться наихудшим.

Я однажды наступал на подобные грабли, запрос был похожий
Код: sql
1.
select * from MyTable where f1 = 1 and f2 = 234 ...


таблица открыта локально, монопольно, записей прядка 100+ млн. индексы были оба по f1 и f2, но в один прекрасный день этот запрос завесил проц на 100% и завершения я не дождался. Последующие проверки зависание повторяли, переиндексация не помогала. Помогла смена индекса на str(f1) + str(f2)

PS Пища для размышлений: почему MS SQL никогда не использует два индекса?
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621338
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TSergey SizovСударь, вы думаете я это в текстовом редакторе написал? Вам показать код, который выводит сие сообщение? Извольте.
...
Потом расскажете про использование только одного индекса.
"На заборе тоже написано, а забором нету!" (с)

Я утверждаю что "Rushmore optimization level for intermediate result: full" не означает "Найдено наилучшее решение".
При некоторых обстоятельствах решение может оказаться наихудшим.Угу. Например, на маленькой таблице, где накладные расходы на индексы могут превысить достигнутый результат ускорения. Или ошибки в движке, которые правились сервиспаками. Ну и т.д.
Я однажды наступал на подобные грабли, запрос был похожий
Код: sql
1.
select * from MyTable where f1 = 1 and f2 = 234 ...


таблица открыта локально, монопольно, записей прядка 100+ млн. индексы были оба по f1 и f2, но в один прекрасный день этот запрос завесил проц на 100% и завершения я не дождался. Последующие проверки зависание повторяли, переиндексация не помогала. Помогла смена индекса на str(f1) + str(f2)А тут сразу всплывает версия самого фокса и его сервспаков. :)
PS Пища для размышлений: почему MS SQL никогда не использует два индекса?А там индексы не по выражениям. И используются, в том числе, ВМЕСТО данных из таблицы. Поразмышляйте на досуге.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621374
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Sergey Sizov]А тут сразу всплывает версия самого фокса и его сервспаков. :) Visual FoxPro 09.00.0000.5815 for Windows

Sergey SizovPS Пища для размышлений: почему MS SQL никогда не использует два индекса?А там индексы не по выражениям. И используются, в том числе, ВМЕСТО данных из таблицы. Поразмышляйте на досуге.
ИМХО у меня объяснение "почему так" немного конспирологическое: рашмор изначально заточен на медленные сети порядка 10 Мбит, где выгоднее по индексам построить пересечение, т.е. список нужных записей, а затем тащить записи на клиента, но при при таблицах в миллионы записей и результаты десятки-сотни тыс. записей, этот алгоритм получается не самым лучшим решением. Повторюсь: сугубо ИМХО, просто предположение.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621412
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
должно быть 09.00.0000.7423
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621421
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
На таблице висит 200 юзеров. Как ты себе ты представляешь такое взрослое решение как индексация когда захочу (при этом она тоже требует времени) или работа такого кол-ва юзеров по обновлению 30 индексов? Мне требуется исполнение скрипта в пределах 10-15 сек, а тут одна из операций сжирает 25, а общее время вылетает под 100.

Вопрос на самом деле почему выборка в одной копии таблицы происходит мгновенно, а в другой - достаточно долго.
Сейчас скопировал исходную таблицу вместе с cdx. Сделал ее свободной. Выборка - долго. Переиндексировал - долго.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621441
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisSergey Sizov,
На таблице висит 200 юзеров. Как ты себе ты представляешь такое взрослое решение как индексация когда захочуГде, кто и когда такое предлагал? Плюнь тому в морду. :) (при этом она тоже требует времени) или работа такого кол-ва юзеров по обновлению 30 индексов?И опять двадцать пять... Какие еще 30 индексов? Мне требуется исполнение скрипта в пределах 10-15 сек, а тут одна из операций сжирает 25, а общее время вылетает под 100.Ну прям америку открыл, а мужики то и не знают... Ну так разбирайся почему так, чего тут ныть?
Переиндексация, в общем-то, обслуживающая процедура и не должна проводится в рабочее время. Неужели первый раз об этом слышишь?

Вопрос на самом деле почему выборка в одной копии таблицы происходит мгновенно, а в другой - достаточно долго.
Сейчас скопировал исходную таблицу вместе с cdx. Сделал ее свободной. Выборка - долго. Переиндексировал - долго.Вопрос про сферического коня. Все зависит от твоей конкретики, которую тут никто не видит и может только гадать. Гадания тебе выдали.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621457
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov,
Мне не нужно рассказывать как оптимизировать эту выборку. Я хочу понимать как работает Select и почему одни и те же данные в одних и тех же условиях он выбирает по разному. А какие построить индексы я уж и сам как-нить разберусь.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621458
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamis,

наше дело предложить, ваше дело не воспользоваться нашим предложением. Успехов в гаданиях.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621685
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SizovDima T,
должно быть 09.00.0000.7423
На сайте MS только SP2 в котором 09.00.0000.5815
9.0.0.7423 упоминается, но не качается. Качать непонятно откуда - страшновато.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39621733
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,
нет там ничего страшного ибо там только DLL, которые надо руками разложить в нужные места.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39622070
asdor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisВопрос на самом деле почему выборка в одной копии таблицы происходит мгновенно, а в другой - достаточно долго.
Сейчас скопировал исходную таблицу вместе с cdx. Сделал ее свободной. Выборка - долго. Переиндексировал - долго.

Ну вот же вам информация для анализа.
На вскидку, 1я копия получилась сильно урезаной. Т.е. вовсе и не копией.
Иначе трудно что то объяснить.

Так как после точного копирования, все сразу сравнялось.
Что мешает создать индекс как Sergey Sizov советует? И при чем тут 30 полей?
Те поля что выбираются индексам не нужны.
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39622503
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asdor,
Дело в том, что выбор идет по полю oper с дополнительным фильтром empt(uslov), а Sergey Sizov советует для ускорения создать и индекс по uslov. Но выборки бывают с разными фильтрами, те для каждой выборки, по этой логике, нужен свой дополнительный индекс. А как быть с таким индексом, если требуется empt(uslov), !empt(uslov), uslov='12345'. Это ведь тоже разные индексы для оптимизатора.

1-я копия действительно урезана. Она меньше тыс. на 2 удаленных записей, при общем объеме 5500000. Получилась командой Copy to.

Тут фишка в том, что если делать выборку where oper='007001', то в обоих случаях выборка происходит мгновенно, точнее не выборка а какой-то именованный фильтр. При этом recc() показывает количество записей в исходной таблице, а count количество записей в выборке. При попытке сделать Select из такой выборки система выдает ошибку и предлагает использовать форму into table для первоначальной выборки. Помогает Nofiltr, но при этом время выборки резко возрастает. Это к чему - для копии таблицы по такой же схеме срабатывает и where oper = '007001' and !empt(uslov), а для исходной не срабатывает.

Вот вопрос и был - ПОЧЕМУ. а Sergey Sizov пытался рассказать КАК можно сделать. КАК можно я и сам знаю. Сейчас время срабатывания 0.1сек, но решение-то не системное...
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39622504
glamis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

У меня SP3 стоит. По-крайней мере должна стоять:)
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39622565
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisasdor,
Дело в том, что выбор идет по полю oper с дополнительным фильтром empt(uslov), а Sergey Sizov советует для ускорения создать и индекс по uslov.Точно-точно? А если внимательнее перечитать? Но выборки бывают с разными фильтрами,Какая неожиданная новость! те для каждой выборки, по этой логике, нужен свой дополнительный индекс.По какой ТАКОЙ логике? Если все время утверждалось, что индексы нужны по выражениям в условиях отборов? Типа выражения там никогда не повторяются? А как быть с таким индексом, если требуется empt(uslov), !empt(uslov),Эти два условия покрываются 1(Одним) индексом. uslov='12345'. Это ведь тоже разные индексы для оптимизатора.Разумеется. А вы, как я понимаю, хотите обойтись одним-двумя? На каком основании?
1-я копия действительно урезана. Она меньше тыс. на 2 удаленных записей, при общем объеме 5500000. Получилась командой Copy to.

Тут фишка в том, что если делать выборку where oper='007001', то в обоих случаях выборка происходит мгновенно, точнее не выборка а какой-то именованный фильтр.То есть про способ выполнения запросов путем наложения хитрого фильтра вы не знаете. При этом recc() показывает количество записей в исходной таблице, а count количество записей в выборке. При попытке сделать Select из такой выборки система выдает ошибку и предлагает использовать форму into table для первоначальной выборки. Помогает Nofiltr, но при этом время выборки резко возрастает.Ибо не используются кэшированные данные и происходит физическая переливка данных в новый курсор Это к чему - для копии таблицы по такой же схеме срабатывает и where oper = '007001' and !empt(uslov), а для исходной не срабатывает. Кто на ком стоял?
Вот вопрос и был - ПОЧЕМУ. а Sergey Sizov пытался рассказать КАК можно сделать. КАК можно я и сам знаю. Сейчас время срабатывания 0.1сек, но решение-то не системное...Интересно, как можно было что-то рассказать по поводу "почему?" если очень важная для этого информация только сейчас опубликована?
Да, какое решение несистемное? Создание индексов?
...
Рейтинг: 0 / 0
Почему Select медленно работает?
    #39622567
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
glamisDima T,

У меня SP3 стоит. По-крайней мере должна стоять:)Для фокса нет такого сервис пака. Последнее что было и имело указанную мной версию, был хот фикс к SP2.
...
Рейтинг: 0 / 0
41 сообщений из 41, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Почему Select медленно работает?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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