|
|
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Дорогие друзья! Научите, как вы умудряетесь делать законченные проекты с базами данных. Во всем слушался вас при выборе стратегии построения базы и алгоритма программы. Результат шестимесячной работы, круглый ноль. Вот что произошло: со временем число записей дошло всего до 4500, а все работает уже так медленно, что продолжать не стоит. Там всего 5 полей. Потом проверил, не в запросе ли дело, но самый простой запрос SELECT * FROM ... выполняется за одну секунду, а с объединением двух или более таблиц, вообще кошмар. Потом проверил, не в базе ли дело, создал новую базу со столькими же записями. Результат тот же. Я представляю, и нечего там представлять, проверил, что происходит, когда 20000 или 80000 записей, плюс, если запрос понадобится с объединением двух или более таблиц. Мне твердили, что пока число записей до полмиллиона или даже больше, нечего опасаться. Существуют же базы данных в повседневной жизни. Как их умудряются делать. Или Access и Jet это самые паршивые вещи в этой области. Что тогда лучше брать, посоветуйте. Но “лучше” подразумевает, когда 5 или 10 раз быстрее, так как иначе я не знаю, как этой программой можно пользоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 15:04 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Есть ли на поля FK индексы или Jet втупую занимается перебором записей с TABLE SCAN ? -- www.rusug.ru - портал русскоязычной группы пользователей Sybase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 15:40 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответ! Индексов признаюсь, нет. Обязательно займусь ими, параллельно прочту ветку, которую вы указали. Встречал аналогичную программу, как моя, с использованием Borland Database Engine, кто не будь, пользуется им? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 15:52 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
поставил индекс на два поля (на primary стоят автоматический) эффекта вообще не ощутил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 20:01 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Структуру таблички и запрос в студию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2006, 21:06 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Pv> Существуют же базы данных в повседневной Pv> жизни. Как их умудряются делать. Это иллюзия. -- С уважением Кочмин Александр Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 08:17 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Alexandr Kochmin Pv> Существуют же базы данных в повседневной Pv> жизни. Как их умудряются делать. Это иллюзия. -- С уважением Кочмин Александр Posted via ActualForum NNTP Server 1.3Извините, что иллюзия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 14:45 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Pv> Alexandr Kochmin Pv>> Существуют же базы данных в повседневной Pv>> жизни. Как их умудряются делать. Pv> Это иллюзия. Pv> Извините, что иллюзия? что существуют базы которые "Но "лучше" подразумевает, когда 5 или 10 раз быстрее," да шутка это :) А по существу - оптимизируй. Дюже у тебя заза неоптимизирована. Читай про индексы, оптимизицию, планы запросов, нормализацию и прочее... -- С уважением Кочмин Александр Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 15:09 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Увелить скорость можно путем увеличения объема памяти компьютера, например, из 128 М до 256 М, и заменой процессора, например 486 AT на Pentium II . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 15:41 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
PVPУвелить скорость можно путем увеличения объема памяти компьютера, например, из 128 М до 256 М, и заменой процессора, например 486 AT на Pentium II . Если этот ответ содержит иронию хочу сказать, что за каждим вопросом стоит чья-то проблема и не всегда приемлемо ничего не дающие ответы. А если серьезна спрашиваете, то все компьютеры P4, 2400 MHz. В вопросе с самого начала было подчеркнуто что база не такая сложная и по-моему очень маленькая для того чтобы так медленно работала. Спасибо Alexandr Kochmin все вами перечисленное, я обязательно учту, хотя не думаю что, все сказанное игнорировано у меня. Здесь находится структура базы, реальная база чуть-чуть отличается. Пример привел, для того чтобы подчеркнуть, что она не сложная. Ведущая таблица Docs для каждой операции имеется DocID DocID присутствует в таблице History, где находится все содержимое, всех операции. Таблица History в свою очередь имеет ID которое, по полям HistoryID в вспомогательных таблицах связан с дополнительной информацией к записи. Что с чем связано видно из Relationships которое составлено только для наглядности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 20:08 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Ping-vin PVPУвелить скорость можно путем увеличения объема памяти компьютера, например, из 128 М до 256 М, и заменой процессора, например 486 AT на Pentium II . Если этот ответ содержит иронию хочу сказать, что за каждим вопросом стоит чья-то проблема и не всегда приемлемо ничего не дающие ответы. А если серьезна спрашиваете, то все компьютеры P4, 2400 MHz.Прошу прощение за допущенную вольность в интонации. Речь шла действительно о технике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 21:49 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
PVPРечь шла действительно о технике. это очевидно экстенсивный путь, если только не исчерпаны все возможности оптимизации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2006, 21:51 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
2 Ping-vin Выполняю часть работы за вас, а именно -- привожу вашу схему, выдранную из mdb-файла. Правда там не видно типов данных, что не облегчает понимание, и, конечно, названия полей и таблиц тоже понимание не облегчают. Теперь ждем текст запросов, которые у вас тормозят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 06:56 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Теперь вопрос. У вас из 10 таблиц только 4 имеют первичные ключи, а 6 -- без ключей. Вопрос не в том, кого именно вы, по вашим словам, слушались во всем при проектировании такой базы, а каковы же там должны быть ключи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 07:02 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Большое спасибо mir Я ни как не смог так вставить Screenshot в вопрос. Уже всем спасибо, что столько времени потеряли. Извиняюсь, все таблицы содержат первичные ключи? такими являются первые поля, в каждой таблице, на рисунке. Запросов Канешно много, но приведу два из них. Код: plaintext 1. 2. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2006, 12:33 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Все слишком безнадежно, или почему остыл желание помочь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2006, 14:48 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Pv> Автор: Ping-vin Pv> Все слишком безнадежно, или почему остыл желание помочь? тебе уже все сказали по этой теме, а ты читать и думать не хочешь, а ждешь, когда же будет "такой компонент, который на форму положил, и все быстро заработало". Здесь рыбы нет. -- С уважением Кочмин Александр Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 09:28 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
1.замени OperationID на 1,-1 и делай SUM(amount*OperationID) 2. Исключи запросы select * from, поля перечисли (select * from a inner join b ..., догадываюсь что возможно и больше есть..). 3. По возможности исключи вложенные запросы. Во втором примере непонятно зачем он нужен такой. SELECT h.goodsID, SUM(d.operationID*h.amount) FROM history as H inner join Docs as D on H.docID=D.docID WHERE d.SourceID = '" & Условие & "' and d.docdate <=" & Условие & " group by h.goodsID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 09:43 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Ping-vinВсе слишком безнадежно, или почему остыл желание помочь? Если Access на P4, 2400 выбирает 4500 записей из таблице за секунду, то тут запросами ничего не исправить. Для теста, добавил 50000 записей в Docs из Example_1.mdb - никаких тормозов. Таблицы линкованные? На другом компьютере? Если да, проверяй сеть. Сожми базу. Накати все сервис паки для Jet и Access. И скажи какой версии у тебя Access? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 11:50 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Alexandr Kochmin Pv> Автор: Ping-vin Pv> Все слишком безнадежно, или почему остыл желание помочь? тебе уже все сказали по этой теме, а ты читать и думать не хочешь, а ждешь, когда же будет "такой компонент, который на форму положил, и все быстро заработало". Здесь рыбы нет. -- С уважением Кочмин Александр Posted via ActualForum NNTP Server 1.3-Ошибаешься. iscrafm 1.замени OperationID на 1,-1 и делай SUM(amount*OperationID) 2. Исключи запросы select * from, поля перечисли (select * from a inner join b ..., догадываюсь что возможно и больше есть..). 3. По возможности исключи вложенные запросы. Во втором примере непонятно зачем он нужен такой. SELECT h.goodsID, SUM(d.operationID*h.amount) FROM history as H inner join Docs as D on H.docID=D.docID WHERE d.SourceID = '" & Условие & "' and d.docdate <=" & Условие & " group by h.goodsID1. OperationID заменить вряд ли смогу, я привел пример для одного условия OperationID, а реально их много (перемещение, реализация и т.д.) 2. В основном так и делаю, но после многочисленных экспериментов это работало бистрее всех. 3. Там вложенный запрос присутствует потому, что в реальной работе происходит выборка двух полей из Docs Спасибо за ответ! IgorMЕсли Access на P4, 2400 выбирает 4500 записей из таблице за секунду, то тут запросами ничего не исправить. Для теста, добавил 50000 записей в Docs из Example_1.mdb - никаких тормозов. Таблицы линкованные? На другом компьютере? Если да, проверяй сеть. Сожми базу. Накати все сервис паки для Jet и Access. И скажи какой версии у тебя Access?Будьте добры, за какое время выбирает у вас первый запрос из 50000. Я проверял для 20000 и 80000 записей. Первый запрос 4 сек на 20000 записей. Access 2000. сервис паки не стоят, спасибо, посмотрю в эту сторону. Что касается индексов, о которых было сказано выше, если посмотрите глазами неопытного человека, нормальных методологии по их использованию, очень трудно найти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 16:07 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Ping-vin IgorMЕсли Access на P4, 2400 выбирает 4500 записей из таблице за секунду, то тут запросами ничего не исправить. Для теста, добавил 50000 записей в Docs из Example_1.mdb - никаких тормозов. Таблицы линкованные? На другом компьютере? Если да, проверяй сеть. Сожми базу. Накати все сервис паки для Jet и Access. И скажи какой версии у тебя Access?Будьте добры, за какое время выбирает у вас первый запрос из 50000. Я проверял для 20000 и 80000 записей. Первый запрос 4 сек на 20000 записей. 32000 и 65000 (A'2003, 2000 нет) - визуально меньше секунды. Кстати, рекомендую избегать использования текстовых полей как ключевых и связей таблиц по ним, на более-менее сложных и объемных запросах это тормоза default. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 17:32 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
IgorM визуально меньше секунды.я на две секунды согласен , буду искать причини дальше IgorMКстати, рекомендую избегать использования текстовых полей как ключевых и связей таблиц по ним, на более-менее сложных и объемных запросах это тормоза default.Учту обязательно, если не придется очень многое переделать, по-моему, не придется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2006, 19:40 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Ping-vin IgorM визуально меньше секунды.я на две секунды согласен , буду искать причини дальше Я думаю, основная причина - текстовые ключи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 09:29 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Ping-vinЯ проверял для 20000 и 80000 записей. Первый запрос 4 сек на 20000 записей. как раз под рукой оказался Access 2k и P4-2400/256 с джойнами делать поленился, если выразите интерес - сделаю залил таблицу archiv. Полей там штук 15, 1 168 026 записей, индексов не создавал, вес db1.mdb 190Mb. Запрос Код: plaintext 1. боюсь, у Вас все же проблемы с сетью или ПК помимо БД, с которой, очевидно тоже не все в порядке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2006, 14:45 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Проблема действительно идет от текстовых ключей. В этом плане у меня такая проблема. В основном в выборках доминируют поля Goods.f1 и Docs.docsID они и являются текстовыми. Обязательно нужно чтобы содержимое этих полей вводил пользователь, а программа следит за их уникальностью. А пользователь вводит как раз текстовые идентификаторы. Вот, нужен ваш совет, как поступить? Добавить авто счетчики как-то рука не поворачивается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2006, 16:48 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Ping-vinПроблема действительно идет от текстовых ключей. Добавить авто счетчики как-то рука не поворачивается. что с рукой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2006, 10:47 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Petro123 Ping-vinПроблема действительно идет от текстовых ключей. Добавить авто счетчики как-то рука не поворачивается. что с рукой? С рукой все в порядке. Вот представьте такую выборку: Код: plaintext А сейчас представьте, что добавил поле счетчик в таблицу Docs, допустим, назвал ID и моя выборка имеет уже такой вид: Код: plaintext и вы хотите сказать, что эта выборка лучше первого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 00:33 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Ищут по дате, содержимому, (открой word и посмотри условия в поиске файла "Открыть....."). id должен знать пользователь, только в крайнем случае. Тогда и вопрос: "Текстовое или счётчик" отпадёт. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 12:08 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
по поводу железа, то надо выяснить - ОНО ли причина медлительности (30 минут на форуме по Access потратить) ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 12:10 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Petro123 Код: plaintext Ищут по дате, содержимому, (открой word и посмотри условия в поиске файла "Открыть....."). id должен знать пользователь, только в крайнем случае. Тогда и вопрос: "Текстовое или счётчик" отпадёт. Я не могу с вами спорить в чем то другом (уважая ваши 4051 участии по форуму) но на счет того, что вы написали, поспорю, так как ничего из него не соответствует моей задаче и того, что было описано выше. Кто, по какому признаку ищет и какой документ это дело его вкуса, но мне нужно искать именно по определенному DocID все записи в History а эти DocID хранятся в Docs а условие, по какому DocID делать выборку, находится на форме Excel в Label1.Caption. Добавлю что все это не запрос, а подзапрос в запросе, и один из многих в моей задаче, привел здесь как пример. Что касается <<30 минут на форуме по Access потратить >> не тридцать минут, а третью неделю ищу по всему свету решение, а не только по этому форуму, чтобы довести до конца законченный в программном плане проект который тормозит в выборке. При чем тут железо? базы существовали при Pe1, но работали. Разговор идет о ничтожном 4500 или 20000 записях, из которых выборка работает медленно. Мне нужно докопаться до причини, чтобы при росте базы быть уверенным, что снова такое не повторится или при каком размере повторится, ото для 4500 или 20000 записей я свою задачу как-то смогу решить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 14:49 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
автор...находится на форме Excel в Label1.Caption Так еще и Excel есть? Или это опечатка?.. Речь ведь вроде об Access шла... В любом случае может лучше не Label1.Caption а Forms!Form1!Edit1 ?... Очень поможет если DocID не текстовый... Edit в отличие от Label имеет тип/формат (целый, дата и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 15:24 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Ping-vinВот представьте такую выборку: Код: plaintext А сейчас представьте, что добавил поле счетчик в таблицу , допустим, назвал ID и моя выборка имеет уже такой вид: Код: plaintext - добавь в Docs новое поле id=счётчик + оно ключевое - измени связанное поле в History на тип LongInt - свяжи оба поля с целостностью данных (поставь 3 галки) После этого твой запрос НЕ ИЗМЕНИТСЯ. Картинку если сделал БД сюда. ЗЫ. Если спрашивал в форуме Access по скорости, то ссылки на топик. У нас больше времени чем у тебя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 15:41 |
|
||
|
Как улучшить скорость?
|
|||
|---|---|---|---|
|
#18+
Sgt.Pepper автор...находится на форме Excel в Label1.Caption Так еще и Excel есть? Или это опечатка?.. Речь ведь вроде об Access шла... В любом случае может лучше не Label1.Caption а Forms!Form1!Edit1 ?... Очень поможет если DocID не текстовый... Edit в отличие от Label имеет тип/формат (целый, дата и т.д.)Нет не опечатка, именно Excel, а база MDB и даже имеется собственные функции, которые находятся в модуле Access, а основной код в Excel-е. Только проблемы не отсюда. Petro123 - свяжи оба поля с целостностью данных (поставь 3 галки) После этого твой запрос НЕ ИЗМЕНИТСЯ.О это я не проходил, Спасибо! сейчас посмотрю что это такое Petro123 - У нас больше времени чем у тебя?Нет, поверьте, я так не считаю. Что и как сделать это легко искать и находить ответы, а вот шлифовать сделанное и довести до кондиции это уже, даже вопрос хорошо поставить нелегко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2006, 16:29 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1545219]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
418ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 229ms |
| total: | 758ms |

| 0 / 0 |
