Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизМедленно работает TdxDBTreeView. Найти похожие ветки
← →
Abcdef123 (2012-06-12 10:27) [0]Здравствуйте, Мастера!
Сначала опишу проблему: В давно уже работающем проекте используется компонент TdxDBTreeView,но как только на некоторых рабочих местах перешли на виндовс 7, то одна из двух форм, где используется этот компонент работает так медленно!!! На другой же форме работает нормально (как и раньше). Я сравнила в чем разница - та, что быстро работает данные формируем простым запросом Select * from MyTbl Order by Key_RID, PCode. И на этой форме всего то нужно показать это дерево. А вот в той, что медленно, там посложнее задача и работаем через компонент-таблица (Таблица та же самая MyTbl). И у таблицы индекс установлен по полю "PCode" - это так надо на форме, чтоб данные были в алфавитном порядке по этому полю (а не по Key_RID).То есть на форме все данные полей для редактирования и прочее, а сбоку это "дерево". Вот я и думаю, может ли такая сильная задержка в показе этого дерева происходить по причине "не того" индекса? (Я, к сожалению сама с этим компонентом мало работала, так что извините если вопрос примитивен)
А может вообще нет необходимости искать причину в коде, может надо искать причину в операционке и настройках сети?? (Дело в том, что еще заметила, если данные хранятся на локальном диске, то побыстрее работает, чем если данные с сервера. Хотя как уже сказала выше, до этого ничего в настройках сетевых не меняли, и если рабочая станция XP, то работает быстро, а если Виста или Вин7, то медленно)
Как дополнительную информацию работаем с Базой данных Advantage 10.
Надеюсь , что кто то работает с этим компонентом и может мне ответить на вопрос по TdxDBTreeView - важен ли индекс в датасет?
И главное, в каком направлении мне стоит "двигаться" для решения проблемы со скоростью?
Заранее спасибо,
Надежда.
← →
sniknik © (2012-06-12 11:21) [1]индекс всегда важен для поиска... в чем вообще проблема? создай "нужный", как думаешь, да посмотри что изменилось... если реально нужен, а для использования другой, ну отставь два.
← →
Abcdef123 (2012-06-12 12:13) [2]To [1] "в чем вообще проблема? создай "нужный""
Физически у этой таблицы нет индекса по полю Key_Rid, да и как сказала, на форме мне нужен данные по индексу алфавитному. А значит, я могу датасет для дерева только сделать на основе query И каким то образом связать эти оба датасета (таблицу и запрос), чтобы действия были синхронные при работе с таблицей или деревом. А как их связать, я не знаю. Индекса то нужного физически нет.
← →
sniknik © (2012-06-12 13:33) [3]> на форме мне нужен данные по индексу алфавитному.
а в дбтривью нужны по ключу/(неважно чему), и что теперь? парадокс, больше одного индекса на таблицу представить не можешь? а нафига тебе это программирование?
> Индекса то нужного физически нет.
создай. и не путай локальный и в базе... (у тебя клиент-сервер же, нет?)
← →
Abcdef123 (2012-06-13 05:25) [4]To [3] Да, у нас клиент-сервер. И вы имеете в виду создать локальный индекс в рантайме, к примеру через TTable.AddIndex(...)? Правильно я Вас поняла?
И второй вопрос по вашему комментарию - извините, я пока всё же не могу представить, как надо оперировать индексами, если чтоб данные отображались как я сказала выше? Ведь активный индекс может быть установлен только один одномоментно. Поясню, ну вот, допустим, я создала
второй индекс Key_RID+PCode и установлю его как активным (основным), это решит проблему с деревом, но, ведь и все записи на форме будут кроллироваться (показываться) по ключу Key_RID+PCode, а не по PCode как мне нужно. Поясните, пожалуйста, подробнее, может я что-то упускаю из вида?
← →
sniknik © (2012-06-13 07:54) [5]> Поясните, пожалуйста, подробнее, может я что-то упускаю из вида?
упускаешь конечно... простой момент - нужен ли тебе ответ на вопрос.
> - важен ли индекс в датасет?
вот именно в твоей ситуации.
переключить на другой, чтобы посмотреть зависит ли от этого твоя проблема, даже если оно тебе "так не нужно" в данный момент... это, что так сложно?
без этого ты можешь вечно решать одно, хотя причина может быть в другом.
второе, индекс не обязательно должен быть активным чтобы использоваться. в зависимости от компонент. и как написано... т.к. действительно есть команды оперирующие только активным индексом. (обычно в справке про это пишут)
← →
Abcdef123 (2012-06-13 12:26) [6]to [5] Ну сейчас своим вопросом на мой вопрос вообще меня поставили в тупик.:-) "нужен ли тебе ответ на вопрос" С какой стати я вообще бы задавала здесь вопросы? Какая должна быть фантазия, чтоб найти другую причину пребывания здесь...Я в недоумении.
"действительно есть команды оперирующие только активным индексом. (обычно в справке про это пишут)"Конечно же прежде чем писать здесь я смотрела хелп. Но часто на "сторонние" компоненты очень скудный хелр, в том числе и у интересующего меня компонента, поэтому я и обратилась сюда к тем,кто возможно уже знает про этот компонент и "обязательные условия" его использования.
← →
stas © (2012-06-13 16:05) [7]Abcdef123 (13.06.12 12:26) [6]
На сколько быстро работает этот запросSelect * from MyTbl Order by Key_RID, PCode
, на тех машинах где медленно строится дерево. Если быстро то дело не в индексе, хотя он здесь не помешал бы по 2-м полям (Key_RID, PCode)
← →
sniknik © (2012-06-13 18:02) [8]> Я в недоумении.
что непонятного? твоя ситуация только у тебя, только с твоими "сторонними", как говоришь компонентами...
кто кроме тебя может, и должен проверять (я??? даже если бы захотел - у меня ни ситуации, ни компонент, ни инфы для воспроизведения... также как и у других)? что проверить тебе сказали. совет дали. если ждешь готового на блюдечке то тебе не сюда.
stas © (13.06.12 16:05) [7]
> sniknik © (12.06.12 13:33) [3]
> создай. и не путай локальный и в базе... (у тебя клиент-сервер же, нет?)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.057 c