View previous topic :: View next topic |
Author |
Message |
Rad777
Joined: 07 Feb 2002 Posts: 276 Location: Шакиров Радик Ленарович Occupation: предприниматель Interests: Казань
|
Posted: 30 Sep 2002 23:50 Post subject: 2 IS: Про индексы... |
|
|
Уважаемые разработчики ИС, объясните пожалуйста к чему почти в каждом структурном индексе таблиц выставлен
фильтр .not.deleted() ? |
|
Back to top |
|
|
SantechNik
Joined: 31 Dec 2001 Posts: 1696 Location: Гусев Михаил
Interests: Москва
|
Posted: 01 Oct 2002 12:18 Post subject: |
|
|
Мне в свое время объяснили, что тем самым достигают "скорости" работы с таблицей. Вроде как, стертые записи "не мешают" при рабо |
|
Back to top |
|
|
Rad777
Joined: 07 Feb 2002 Posts: 276 Location: Шакиров Радик Ленарович Occupation: предприниматель Interests: Казань
|
Posted: 02 Oct 2002 00:36 Post subject: |
|
|
Вобщем-то вопрос изначально носит "провокационный" характер.
Извини, но это чистой воды блеф, тобишь врут и не моргают. Такой фильтр является настоящим тормозом при обработке записей таблиц и любой FOXер это подтвердит.
Для пропуска удаленных записей при обработке имеется установка set delete off|on. Но ее ведь необходимо соблюдать при переходах от модуля к модулю, при вызове процедур и т.п. И по-моему это было сделано в свое время для того, что бы не зависеть от этой установки - так ведь проще и быстрее всего избежать ошибок с вышеназванной установкой.
А по-человечески это делается созданием простейшей процедуры установок значений, существующих по-умолчанию для проекта в целом. И вызов такой процедуры освобождает от контроля значений получаемых из внешних программ/процедур/функций и по окончании работы моего "куска" глушит также и мои изменения установок. Проще говоря, мне, как программеру, до-лампочки, какие там значения были до вызова моей части программы, т.к. я и все остальные участники должны придерживаться требований проекта.
И есть для установки set delete одно исключение.... Итак, ВОПРОС к программистам IS:
- ЧТО ЭТО ЗА ИСКЛЮЧЕНИЕ? |
|
Back to top |
|
|
Magistr
Joined: 19 Aug 2002 Posts: 1264 Location: Петрунин Д.Н. Occupation: Инженер-программист Interests: Н.Новгород
|
Posted: 02 Oct 2002 10:55 Post subject: |
|
|
Quote: | И есть для установки set delete одно исключение.... Итак, ВОПРОС к программистам IS:
- ЧТО ЭТО ЗА ИСКЛЮЧЕНИЕ? |
Будет интересно, если ответят, наверное, не ответят, так как:
http://www.mrpii.ru/club/phpBB/viewtopic.php?t=1300 |
|
Back to top |
|
|
Hohol
Joined: 15 Jan 2002 Posts: 196 Location: Александр
|
Posted: 02 Oct 2002 17:01 Post subject: |
|
|
Да они ж не ФОКСиситы, а Клипперисты, вдруг там этого исключения нету.
2Rad777 - ты про то что команда GO m.recnumber позволяет стать на запись даже если она удалена не зависимо от Set Delete ? |
|
Back to top |
|
|
Rad777
Joined: 07 Feb 2002 Posts: 276 Location: Шакиров Радик Ленарович Occupation: предприниматель Interests: Казань
|
Posted: 03 Oct 2002 00:02 Post subject: |
|
|
Нет, RECNUMBER - указывает на физический номер записи и тут уж никуда не деться, что хотел, то и получишь.
Тут другое, и в Клиппере, imho, это должно быть также как и в Фоксе.
Я конечно же сюда заброшу, это и не секрет вовсе, просто если серьезно заниматься написанием программ, то такие вещи нужно знать как слова исключения "стекляННый, оловяННый, деревяННый" в русском языке.
Мне все же хотелось бы услышать ответ от IS...
P.S.: Что-то форум работает нестабильно или только у меня так - создаю тему в форуме по налогообложению, вижу ее, даже корректирую, несколько раз захожу еще проверить правильность и дополняю. А на следующий день темы как не бывало.
Так уже второй раз. Если тема удаляется преднамеренно, то хоть сообщение кинули бы что л |
|
Back to top |
|
|
Rad777
Joined: 07 Feb 2002 Posts: 276 Location: Шакиров Радик Ленарович Occupation: предприниматель Interests: Казань
|
Posted: 03 Oct 2002 00:14 Post subject: |
|
|
По ссылке можно сказать одно - в VFP это исключение действует тоже.
Не станут отвечать скорее всего исходя из принципа "не морочьте мне голову". |
|
Back to top |
|
|
itman
Joined: 05 Apr 2002 Posts: 1247 Location: Ильин Е.Ю. Occupation: Cio Interests: Кинель
|
Posted: 03 Oct 2002 06:54 Post subject: |
|
|
Не ответят, так как было сказано:
http://www.intellect-service.ru/club/phpBB/viewtopic.php?p=5658#5658
Так что давайте вопросы по существу ?
или как?
Вчера кстати по почте пришло одно сообщение об ответе на тему, хотел продолжить а его там нету
Придется видно выходить на прямые контакты друг с другом |
|
Back to top |
|
|
WiRuc
Joined: 27 Aug 2002 Posts: 39
|
Posted: 03 Oct 2002 09:47 Post subject: |
|
|
Могу подтвердить, что установка фильтра NOT.DELETED() действительно оправдана при работе на Клиппере, т.к. там нет селектов и вся обработка ведется конструкциями SEEK и SCAN WHILE. При этом достигается меньший размер индекса, что, как вы понимаете, как нельзя лучше, особенно по сети. Так что в этой части проблем никаких. Встает другой вопрос. Есть модуль быстрых отчетов на Фоксе, причем насколько мне сообщали, часть индексов специально построена для него, но в них тоже используется фильтр NOT.DELETE(), при всем том, что в этом модуле активно используются SELECTы. Есть еще одно но. При индексации БЭСТ автоматически добавляет "999 " к индексному выражению, а в SELECTах (я видел текст) нет и в помине точного соотвествия условия с индексным выражением. Складывается ощущение, что люди писавшие этот модуль в принципе не знали, что такое Rushmor оптимизация. Так что, приходится добавлять свои индексы и не забывать писать "999 " при построении SELECTов. |
|
Back to top |
|
|
OlgaLeonova
Joined: 14 Mar 2002 Posts: 112 Location: Леонова
|
Posted: 03 Oct 2002 11:13 Post subject: |
|
|
WiRuc wrote: | Складывается ощущение, что люди писавшие этот модуль в принципе не знали, что такое Rushmor оптимизация. Так что, приходится добавлять свои индексы и не забывать писать "999 " при построении SELECTов. |
А что было, когда они количество девяток изменили!!!!!!!!
Теперь я к индексам ихним не привязываю |
|
Back to top |
|
|
WiRuc
Joined: 27 Aug 2002 Posts: 39
|
Posted: 03 Oct 2002 11:56 Post subject: |
|
|
А как к ним можно не привязываться, если он эти 999 добавляет даже к тем индексам, которые я добавляю сам в bases??? Долго пытался получить ответ, как отключить это добавление, но так его и не получил) |
|
Back to top |
|
|
Rad777
Joined: 07 Feb 2002 Posts: 276 Location: Шакиров Радик Ленарович Occupation: предприниматель Interests: Казань
|
Posted: 28 Oct 2002 03:26 Post subject: |
|
|
Вопрос был может быть не в тему, но про команду Append From.
Она производит добавление всех записей независимо от установки SET DELETED.
Т.е. в таблицу добавляются и записи помеченные на удаление и, что более всего опасно, эти записи добавляются уже без пометки на удаление.
Команда может активно использоваться при апгрейдах версий и служить источником "потерявшихся" записей в таблицах. Отсюда - непонятные отрицательные остатки по стародавним номенклатурам и т.п. "хвосты". В свете этого - обязательно проводить восстановление индексов перед апгрейдом, т.к. при этом таблицы "пакуются" освобождаясь от помеченных на удаление записей. |
|
Back to top |
|
|
Magistr
Joined: 19 Aug 2002 Posts: 1264 Location: Петрунин Д.Н. Occupation: Инженер-программист Interests: Н.Новгород
|
Posted: 28 Oct 2002 10:38 Post subject: |
|
|
Quote: | В свете этого - обязательно проводить восстановление индексов перед апгрейдом, т.к. при этом таблицы "пакуются" освобождаясь от помеченных на удаление записей. |
А я думал, как базы паковать (удалять записи, помеченные на удаление). Точно пакуются? |
|
Back to top |
|
|
Hohol
Joined: 15 Jan 2002 Posts: 196 Location: Александр
|
Posted: 28 Oct 2002 12:57 Post subject: |
|
|
Rad777 wrote: | Вопрос был может быть не в тему, но про команду Append From.
Она производит добавление всех записей независимо от установки SET DELETED.
Т.е. в таблицу добавляются и записи помеченные на удаление и, что более всего опасно, эти записи добавляются уже без пометки на удаление.
|
А речь идет о Клиппере или о Фоксе ? Если о Фоксе, то это мягко говоря, не так. Я уж было засумлевался и специально перепроверил -на FPD 2.6 если set dele off то действительно переносятся все записи в т.ч. помеченные на удаление причем пометка удаления не переноситься. Но это не баг и не фича, об этом честно написано в хелпе. А в VFP 6.0 они переносятся с пометкой на удаление.
А при set dele on помеченные на удаление записи не переносятся вообще ни в FPD, ни в VFP
Если речь о Клиппере то сорри, не доводилось... |
|
Back to top |
|
|
Hohol
Joined: 15 Jan 2002 Posts: 196 Location: Александр
|
Posted: 28 Oct 2002 13:06 Post subject: |
|
|
Magistr wrote: | А я думал, как базы паковать (удалять записи, помеченные на удаление). Точно пакуются? |
Пакуються если запускается индексация из настройки, а не из рабочего модуля. Потому на случай если понадобиться найти какие-нить "хвосты" я всегда сначала делаю архив, а потом индексацию. |
|
Back to top |
|
|
|