| 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.: Что-то форум работает нестабильно или только у меня так - создаю тему в форуме по налогообложению, вижу ее, даже корректирую, несколько раз захожу еще проверить правильность и дополняю. А на следующий день темы как не бывало.
 .gif)  Так уже второй раз. Если тема удаляется преднамеренно, то хоть сообщение кинули бы что л
 |  | 
	
		| 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.
 Т.е. в таблицу добавляются и записи помеченные на удаление и, что более всего опасно, эти записи добавляются уже без пометки на удаление.
 .gif)  
 Команда может активно использоваться при апгрейдах версий и служить источником "потерявшихся" записей в таблицах. Отсюда - непонятные отрицательные остатки по стародавним номенклатурам и т.п. "хвосты". В свете этого - обязательно проводить восстановление индексов перед апгрейдом, т.к. при этом таблицы "пакуются" освобождаясь от помеченных на удаление записей.
 |  | 
	
		| 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.
 Т.е. в таблицу добавляются и записи помеченные на удаление и, что более всего опасно, эти записи добавляются уже без пометки на удаление.
 .gif)  
 | 
 
 А речь идет о Клиппере или о Фоксе ? Если о Фоксе, то это мягко говоря, не так. Я уж было засумлевался и специально перепроверил -на 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 |  | 
	
		|  | 
	
		|  |