powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выделить удаленные записи в Grid
25 сообщений из 179, страница 4 из 8
Выделить удаленные записи в Grid
    #37142435
Юристишко-выпускник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ.. Вероятно, он либо никогда не использовал индексы по Deleted(), либо не проводил тестирование его эффективности.

одно слово: му**к.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142444
Banditos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

Хм. Давайте расскажу Вам кой о чем.

Подготовка тестовой среды:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE CURSOR myTable (ID Integer, Name C( 10 ))
SELECT myTable
FOR i =  10000  TO  1  STEP - 1 
	FOR j =  1000  TO  1  STEP - 1 
		INSERT INTO myTable (id, name) VALUES (j, SYS( 2015 ))
	ENDFOR 
ENDFOR 
DELETE FROM myTable WHERE RECNO() %  3  =  0 

SELECT MyTable
DELETE TAG ALL 
* наш самый злополучный индекс
INDEX ON DELETED() TAG Del BINARY ADDITIVE 
INDEX ON ID TAG MainID ADDITIVE 

Тестирование.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
CLEAR
SYS( 3054 ,  2 )
SET ESCAPE ON 
SET DELETED OFF

starttime = SECONDS()
SELECT * FROM mytable WHERE ID= 10  AND DELETED() INTO CURSOR tmp
endtime = SECONDS()
SELECT MyTable
? "а тегов у нас - " + STR(TAGCOUNT())
? "время работы - " + STR(endtime - starttime,  20 ,  8 )

Результат.
Странно, но у меня селект в тестировании выполняется быстрее, если я в тестовой среде сделаю индекс:
Код: plaintext
INDEX ON DELETED() TAG Del BINARY ADDITIVE
А вот если его не сделаю - то медленнее. Причем результат просто однозначный. Без вариантов.

Что меня еще смущает.
Вы действительно сравниваете время выборки с одной базы, скажем - 150 записей (до упаковки) - и время выборки из такой же базы, но содержащей в себе 100 записей (после упаковки) - и говорите, что во втором случае быстрее, а значит и индекс бесполезен?
Я пытался подвести Вас к тому, что в своем примере уважаемый Dima T вообще не использует данный индекс!

Хотя, я могу и ошибаться в своих выводах.
ЗЫ. Имхо, Вас всех ввел в заблуждение тот факт, что в Фокспро в хелпе бинарный индекс приведен в примере с удаленными файлами...
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142504
Banditos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К тому же мне кажется, что варианты DELETED() и PACK - это два совершенно разных варианта развития ситуации.
Как их можно сравнивать?
Если в варианте с DELETED() - мы работаем с базой, в которой есть и реальные, и удаленные записи, при этом нам иногда нужно потрогать удаленные.
Если в варианте с PACK - то мы работаем только с реальными записями.

Почему Вы сравниваете два разных набора записей?

ЗЫ. Отсылка к началу: я тоже против постоянной упаковки таблиц. Упаковка нужна для тестирования, для решения проблем. Но в промышленной эксплуатации - вероятно, допущена ошибка в проектировке...
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142512
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditosТестирование.
Код: plaintext
1.
2.
...
SET DELETED OFF
...

Это чего?

Цифры не привел, чего у тебя получилось по времени?
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142523
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваш пример прямо противоположен тому, что происходит в реальных задачах. Вы ищите запись, помеченную как удаленная. А в реальных задачах стоит обратная проблема. Найти запись НЕ помеченную как удаленная.

Кроме того, имейте в виду, что функцию Delete() в условии Where можно писать разве что для теста. Опять же, в реальных задачах фильтрация выполняется через SET DELETED ON. Впрочем, для теста это особой роли не играет

Мне кажется, Вы не поняли, что именно сравнивали. Основная идея прошелмимо заключается в следующем

Если использовать индекса по Deleted(), то он ускорит выполнение выборки настолько, насколько ускорится выполнение после команда PACK.

Вот этот тезис и был опровергнут.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142526
Banditos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dima TBanditosТестирование.
Код: plaintext
1.
2.
...
SET DELETED OFF
...

Это чего?
Это включение в работу удаленных записей.

Dima TЦифры не привел, чего у тебя получилось по времени?
Разница стабильно в 0.006 секунды минимум.

ЗЫ. Только без возмущений что типа мало. Примитивная база, примитивная выборка - результат соответствует.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142542
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditosЗЫ. Отсылка к началу: я тоже против постоянной упаковки таблиц. Упаковка нужна для тестирования, для решения проблем. Но в промышленной эксплуатации - вероятно, допущена ошибка в проектировке...
Упаковка происходит не "постоянно". Для этого создается специальный пункт меню или отдельная процедура. И какой-либо ответственный пользователь (если нет админа) периодически (раз в неделю, раз в месяц, раз в год) запускает эту процедуру

Отстутсвие подобной процедуры в промышленной эксплуатации и выполнение команды PACK "вручную" - вот это-то и есть "ошибка проектирования"

Совсем обойтись без команды PACK, если база данных основана на DBF-таблицах, в принципе, возможно. Но это не оправданно усложняет всю программу. В большинстве задач, все-таки, значительно проще периодически давать команду PACK, чем строить приложение без ее использования.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142550
Banditos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ
Если использовать индекса по Deleted(), то он ускорит выполнение выборки настолько, насколько ускорится выполнение после команда PACK.


Владимир!
Почему Вы упорно игнорируете мой вопрос о принципиально двух разных наборах записей - до упаковки и после???

Кстати, я полностью согласен с прошелмимо, что если использовать индекс DELETED(), то выборка ускорится ПО УДАЛЕННЫМ ЗАПИСЯМ!!!!!!!!!!!!!!!!!!
И как это можно сравнивать с результатом после упаковки, если после упаковки данных записей в таблице нет??????


ЗЫ. Радует тот факт, что Вы не стали возражать про неиспользование индекса в экспериментах Dima T.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142560
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Banditos

Еще раз возвращаемся с того, с чего начали

У нас есть МНОГО записей помеченных как удаленные. Выборка тормозит. Необходимо ускорить выполнение выборки. Какие есть способы этого добиться?

1. Создать индекс по Deleted()
2. Выполнить команду PACK

Какой вариант предпочесть? Вероятно, надо сделать некие тестовые замеры. Какие будут Ваши предложения по тестированию?
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142569
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditosКстати, я полностью согласен с прошелмимо, что если использовать индекс DELETED(), то выборка ускорится ПО УДАЛЕННЫМ ЗАПИСЯМ!!!!!!!!!!!!!!!!!!
Однако именно прошелмимо настаивает на том, что эта информация НЕ НУЖНА!

Приведите пример, когда Вам действительно необходимо отобрать записи, помеченные, как удаленные. Не сомневаюсь, что прошелмимо будет первый, кто скажет, что это не правильно. Как минимум, не правильная организация приложения, если Вам понадобилась именно ТАКАЯ информация.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142583
Юристишко-выпускник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМОднако именно прошелмимо настаивает на том, что эта информация НЕ НУЖНА!


Теретик, Вам не кажется,
что Вы за меня многое домысливаете?
и ведете разговор в нужном Вам русле.

Вы ведь занимаетесь только теорией, и к реальной разработке
не имеете никакого отношения.

не так-ли?
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142610
Юристишко-выпускник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМBanditosКстати, я полностью согласен с прошелмимо, что если использовать индекс DELETED(), то выборка ускорится ПО УДАЛЕННЫМ ЗАПИСЯМ!!!!!!!!!!!!!!!!!!
Однако именно прошелмимо настаивает на том, что эта информация НЕ НУЖНА!


Вы, сударь - наглый лжец.

Вы считаете себя настолько компетентным,
чтобы писать за аппонента любые суждения,
которые Вы считаете нужным?
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142613
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юристишко-выпускникВладимирМОднако именно прошелмимо настаивает на том, что эта информация НЕ НУЖНА!

Теретик, Вам не кажется,
что Вы за меня многое домысливаете?
Во-первых, я могу и процитировать

Юристишко-выпускник3. "метка на удаление" в дбф и признак "удален" в интерфейсе - это есть разные вещи.
пользователь не знает и не должен, что есть какие-то дбф и какие-то служ.метки в нем.
для пользователя рисуют интерфейс и если необходимо уд-е и восст-е док-в,
то и придумывают каой-то признак, который никоем не зависит от служ.метки в дбф.
Во-вторых, я ведь с этим высказыванием и не спорю. Я с ним полностью согласен. Необходимость поиска именно записей помеченных как удаленные - довольно редкое явление.

Юристишко-выпускники ведете разговор в нужном Вам русле.
Разумеется. Я стараюсь, чтобы меня поняли. Поняли что именно я хочу сказать. Какую мысль донести. Поэтому так многословен и стараюсь не изъясняться "словесной жвачкой". Если я в чем-то ошибаюсь, сразу становится видно в чем. Не надо "домысливать"

Юристишко-выпускникВы ведь занимаетесь только теорией, и к реальной разработке
не имеете никакого отношения.

не так-ли?
Почему это? Именно что реальной разработкой и занимаюсь. Точнее, сопровождением и "допиливанием" под "хотелки" пользователя существующего приложения.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142614
Banditos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ Banditos

Еще раз возвращаемся с того, с чего начали

У нас есть МНОГО записей помеченных как удаленные. Выборка тормозит. Необходимо ускорить выполнение выборки. Какие есть способы этого добиться?

1. Создать индекс по Deleted()
2. Выполнить команду PACK

Какой вариант предпочесть? Вероятно, надо сделать некие тестовые замеры. Какие будут Ваши предложения по тестированию?
В очередной раз говорю, что это две принципиально разные ситуации. В Вашем случае:
1. Если удаленные записи дальше нужны.
2. Удаленные записи больше никогда не нужны.

Чего здесь еще спорить? Зачем мешать понятия "красное" и "горячее"?
Если записи дальше не нужны - тогда ОДНОЗНАЧНО вариант 2 - выполнить команду PACK.

Но вот если у Вас каждый день набегает существенный объем таких записей, что у Вас начинает тормозить система из-за этого, и Вы просто вынуждены паковать таблицы - однозначно проблема в проектировке.

А если речь идет о профилактике, то раз в год нет проблем - можно и упаковать, и с архивировать. И упорядочить. И еще много чего.

Кстати, в моих проектах юзвери не могут удалить записи. Никогда и никак. У меня все эти записи просто переходят в другой статус. И когда база вырастает до неприемлемых размеров - я и архивирую, и пакую, и еще много чего. Но случается это весьма редко.
А делать сие даже раз в неделю - тьфу-тьфу... Мне просто очень жалко личного времени, чтобы делать сие даже раз в месяц....
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142625
Юристишко-выпускник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМПочему это? Именно что реальной разработкой и занимаюсь. Точнее, сопровождением и "допиливанием" под "хотелки" пользователя существующего приложения.

я б Вам руки отбил.

не пишите за меня то, что Вы лично домыслили,
и что я не писал.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142627
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юристишко-выпускникВладимирМпропущено...

Однако именно прошелмимо настаивает на том, что эта информация НЕ НУЖНА!


Вы, сударь - наглый лжец.

Вы считаете себя настолько компетентным,
чтобы писать за аппонента любые суждения,
которые Вы считаете нужным?
Да. Считаю. Поскольку Вы не даете себе труд внятно объяснить свою позицию. Именно что приходится "додумывать" и "домысливать". Впрочем, как мне кажется, я не сильно ошибаюсь в интерпретации Вашей позиции.

Если Вы считаете, что за Вас "домысливают" и "додумывают" не правильлно, то извольте изъясняться так, чтобы Вас понимали. А не при помощи той словесной жвачки и хамства, как Вы обычно это делаете.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142638
Юристишко-выпускник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМЮристишко-выпускникпропущено...


Вы, сударь - наглый лжец.

Вы считаете себя настолько компетентным,
чтобы писать за аппонента любые суждения,
которые Вы считаете нужным?
Да. Считаю. Поскольку Вы не даете себе труд внятно объяснить свою позицию. Именно что приходится "додумывать" и "домысливать". Впрочем, как мне кажется, я не сильно ошибаюсь в интерпретации Вашей позиции.

Если Вы считаете, что за Вас "домысливают" и "додумывают" не правильлно, то извольте изъясняться так, чтобы Вас понимали. А не при помощи той словесной жвачки и хамства, как Вы обычно это делаете.

иди на фоксклаб.

я изъяснялся так, как считаю нужным.

еще раз:
1. упаковка бывает неприменима по ряду причин.
2. есть способ создания бинарного индекса, который позволяет
оптимально работать с таблицами с удаленными записями.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142641
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditosЕсли записи дальше не нужны - тогда ОДНОЗНАЧНО вариант 2 - выполнить команду PACK.

Но вот если у Вас каждый день набегает существенный объем таких записей, что у Вас начинает тормозить система из-за этого, и Вы просто вынуждены паковать таблицы - однозначно проблема в проектировке.

А если речь идет о профилактике, то раз в год нет проблем - можно и упаковать, и с архивировать. И упорядочить. И еще много чего.

Я не понял, а о чем тогда Вы спорите? Именно ЭТО мы с Dima T и объясняли с самого начала. Не вижу никаких противоречий с нашей позицией.

BanditosКстати, в моих проектах юзвери не могут удалить записи. Никогда и никак. У меня все эти записи просто переходят в другой статус. И когда база вырастает до неприемлемых размеров - я и архивирую, и пакую, и еще много чего. Но случается это весьма редко.
А делать сие даже раз в неделю - тьфу-тьфу... Мне просто очень жалко личного времени, чтобы делать сие даже раз в месяц....
Тоже согласен. Вполне здравый подход.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142646
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юристишко-выпускник1. упаковка бывает неприменима по ряду причин.
Бывает. Я же не спорю. Но это, скорее, исключение, чем правило

Юристишко-выпускник2. есть способ создания бинарного индекса, который позволяет
оптимально работать с таблицами с удаленными записями.
Так что же Вы столько молчали! Давно бы привели пример и спор на этом завершился бы!
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142649
Юристишко-выпускник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМЮристишко-выпускник1. упаковка бывает неприменима по ряду причин.
Бывает. Я же не спорю. Но это, скорее, исключение, чем правило

Юристишко-выпускник2. есть способ создания бинарного индекса, который позволяет
оптимально работать с таблицами с удаленными записями.
Так что же Вы столько молчали! Давно бы привели пример и спор на этом завершился бы!

ВладимирМ, Вы баран?
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142662
Banditos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМBanditosЕсли записи дальше не нужны - тогда ОДНОЗНАЧНО вариант 2 - выполнить команду PACK.

Но вот если у Вас каждый день набегает существенный объем таких записей, что у Вас начинает тормозить система из-за этого, и Вы просто вынуждены паковать таблицы - однозначно проблема в проектировке.

А если речь идет о профилактике, то раз в год нет проблем - можно и упаковать, и с архивировать. И упорядочить. И еще много чего.

Я не понял, а о чем тогда Вы спорите? Именно ЭТО мы с Dima T и объясняли с самого начала. Не вижу никаких противоречий с нашей позицией.

Хм, нет. Немного истории...

Раз:
Выделить удаленные записи в Grid
Два:
Выделить удаленные записи в Grid

Из этих двух постов ясно, что индексирование и упаковку нужно делать практически ежедневно.
Собственно, если вы обратите внимание, именно с этих постов и разгорелся спор.
И именно против такого подхода против и прошелмимо, и я.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142733
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditosВладимирМпропущено...

Я не понял, а о чем тогда Вы спорите? Именно ЭТО мы с Dima T и объясняли с самого начала. Не вижу никаких противоречий с нашей позицией.

Хм, нет. Немного истории...

Раз:
Выделить удаленные записи в Grid
Два:
Выделить удаленные записи в Grid

Из этих двух постов ясно, что индексирование и упаковку нужно делать практически ежедневно.
Собственно, если вы обратите внимание, именно с этих постов и разгорелся спор.
И именно против такого подхода против и прошелмимо, и я.
Периодичность выполнение упаковки и переиндексации определяется конкретной задачей и личными предпочтениями программиста. Вполне возможно, что для Dima T такая периодичность вполне оправдана. Однако соблюдены все условия "правильной" работы

1. Пользователь сам ничего физически не удаляет
2. Есть некая процедура, которая автоматически, с некоторой периодичностью, выполняет команду PACK

Честно говоря, не вижу никакого "криминала" делать упаковку каждый день. Если условия позволяют, то почему бы и нет? Он ведь далее написал что и бекап делает. Т.е. имеет такие же ежедневные копии базы.

При этом нигде, никоим образом, прошелмимо даже не упоминал о периодичности команды PACK. Он возражал именно против нее как таковой. Аппелируя к тому, что индекс по Deleted() ее должен заменить

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=830283&msg=10283715

прошелмимо2. для того, чтобы быстродействие не страдало от кол-ва уд-х
записей в табличке нужно создать доп.индексы

(...)

паковать Вы сможете, если уж приспичит, руками
из среды, тогда, когда с приложением никто работать не будет,
Как видите, ничего не "додумываю". Это его позиция.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142773
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditosРазница стабильно в 0.006 секунды минимум.

ЗЫ. Только без возмущений что типа мало. Примитивная база, примитивная выборка - результат соответствует.
Ты уж извини, но я все-таки повозмущаюсь:
1. В конце селекта надо добавить NOFILTER иначе выборки не происходит
2. Выборку надо делать не из курсора, а из таблицы, и расшаренной. Обычно так открыты в рабочем софте.
3. SET DELETED ON (а не OFF, т.к. обычно у всех стоит ON) хотя на результат у меня это не повлияло.
4. Не вижу смысла дописывать в запросе AND DELETED() (тебе надо было т.к. у тебя SET DELETED OFF)
5. Одного раза мало, сделал запрос в цикле и WHERE ID=i для разнообразия.
Вобщем я его немного приблизил к реальности. И записей добавил, а то уж больно время маленькое получалось.
Вот твой тест с учетом вышеизложенного:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
clear

set delete on
_cliptext = ''

if !file('myTable.dbf')
	CREATE table myTable free (ID Integer, Name C( 10 ))
	SELECT myTable
	FOR i =  30000  TO  1  STEP - 1 
		wait str(i) window nowait
		FOR j =  1000  TO  1  STEP - 1 
			INSERT INTO myTable (id, name) VALUES (j, SYS( 2015 ))
		ENDFOR 
	ENDFOR 
	DELETE FROM myTable WHERE RECNO() %  3  =  0 
endif

if !used('myTable')
	use myTable In  0 
endif

SELECT MyTable
use MyTable excl
DELETE TAG ALL 
INDEX ON ID TAG MainID ADDITIVE 
use MyTable shared

? 'Создали индекс MainID'
_cliptext = _cliptext + 'Создали индекс MainID' + chr( 13 )
do test

* наш самый злополучный индекс
SELECT MyTable
use MyTable excl
INDEX ON DELETED() TAG Del BINARY ADDITIVE 
use MyTable shared
? 'Создали индекс Del'
_cliptext = _cliptext + 'Создали индекс Del' + chr( 13 )
do test

proc test
SELECT MyTable
set Order To
? "Тэгов: " + STR(TAGCOUNT())
_cliptext = _cliptext + "Тэгов: " + STR(TAGCOUNT()) + chr( 13 )
for i =  1  to  20 
	starttime = seconds()
	SELECT * FROM mytable WHERE ID=i INTO CURSOR tmp nofilter
	endtime = seconds()
	use in tmp
	? "Время: " + STR((endtime - starttime) *  1000 ,  6 ,  1 )
	_cliptext = _cliptext + "Время: " + STR((endtime - starttime) *  1000 ,  6 ,  1 ) + chr( 13 )
endfor
return

А вот результат теста на моем компе:
Создали индекс MainID
Тэгов: 1
Время: 19148
Время: 1532,0
Время: 8285,0
Время: 343,0
Время: 2951,0
Время: 66,0
Время: 69,0
Время: 70,0
Время: 65,0
Время: 65,0
Время: 67,0
Время: 66,0
Время: 70,0
Время: 65,0
Время: 65,0
Время: 66,0
Время: 69,0
Время: 64,0
Время: 67,0
Время: 66,0
Создали индекс Del
Тэгов: 2
Время: 10911
Время: 8139,0
Время: 977,0
Время: 2618,0
Время: 4570,0
Время: 323,0
Время: 1775,0
Время: 1891,0
Время: 81,0
Время: 69,0
Время: 69,0
Время: 91,0
Время: 68,0
Время: 69,0
Время: 74,0
Время: 69,0
Время: 70,0
Время: 71,0
Время: 73,0
Время: 69,0

Ну не вижу я разницы и все тут. Первые запросы немного отличаются, но и то в разные стороны.

После я сделал PACK MyTable и результат стал такой:
Создали индекс MainID
Тэгов: 1
Время: 233,0
Время: 643,0
Время: 980,0
Время: 50,0
Время: 48,0
Время: 48,0
Время: 49,0
Время: 49,0
Время: 52,0
Время: 49,0
Время: 54,0
Время: 50,0
Время: 48,0
Время: 50,0
Время: 52,0
Время: 49,0
Время: 48,0
Время: 49,0
Время: 49,0
Время: 49,0
Создали индекс Del
Тэгов: 2
Время: 265,0
Время: 623,0
Время: 987,0
Время: 56,0
Время: 57,0
Время: 56,0
Время: 57,0
Время: 59,0
Время: 56,0
Время: 57,0
Время: 61,0
Время: 58,0
Время: 60,0
Время: 57,0
Время: 58,0
Время: 57,0
Время: 58,0
Время: 60,0
Время: 57,0
Время: 58,0

И получил то, о чем я выше писал: PACK лучше ускоряет чем индекс.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37142802
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BanditosИз этих двух постов ясно, что индексирование и упаковку нужно делать практически ежедневно.
Собственно, если вы обратите внимание, именно с этих постов и разгорелся спор.
И именно против такого подхода против и прошелмимо, и я.
Вообще-то в этих постах я по-другому выразился.
Началось все с того что прошелмимо сильно расстроился что его индекс назвали тормозом . Тесты показали что это не так. Замедление на миллисекунды сложно назвать тормозом. Но и ускорения от него никакого.

Я не агитирую за ежедневное индексирование, я делюсь собственным опытом. У меня никогда не было проблем из-за этого. Все работает стабильно и без всякого сопровождения.
Зато были мистические глюки из-за битых индексов.
Повторю еще раз - дадите гарантированный способ проверить что индекс не битый - пересмотрю свое отношение к этому вопросу.
...
Рейтинг: 0 / 0
Выделить удаленные записи в Grid
    #37143393
Юристишко-выпускник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T2. Выборку надо делать не из курсора, а из таблицы, и расшаренной. Обычно так открыты в рабочем софте.

Вобщем я его немного приблизил к реальности.



итак, первая часть марлезонского балета:
соглашение о том, что наличие бинарного идекса не вносит тормоз - достигли
(мнение кулинара-теоретика, который не имеет отношения к разработке,
а болтается по форумам и учит и детей и практиков - не учитываем).

вторая часть марлезонского балета:
выяснить, возможно ли созданием бинарного индекса
какой-то период пернебречь упаковкой.
т.е. работать с таблицей в которой имеются уд-е записи
и не паковать ее до опред.момента.

начинаем смотреть тесты.
мы четко себе представляем, что запросы у нас только по ид записи
и других видов запросов быть не может.

замечу, очень странный идентификатор - теряюсь
как мы будем искать записи в таблице в которой по
несколько штук повторяющихся айди.
это не ошибка? так нужно?
...
Рейтинг: 0 / 0
25 сообщений из 179, страница 4 из 8
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Выделить удаленные записи в Grid
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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