Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];

Вниз

Скорорость работы с таблицой БД   Найти похожие ветки 

 
tormoz   (2005-07-28 17:25) [0]

Здравствуйте. Есть одна таблица *.dbf на 1500000 записей. На диске занимает 590 МБайт. Запросы к этой таблице обрабатываются очень долго. Как можно ускорить выполнение запросов к таблице? В идеале хотелось бы получить возможность работы с таблицей в интерактивном режиме... Пока использую стандартный компонент Query.


 
Leonid Troyanovsky ©   (2005-07-28 20:13) [1]


> tormoz   (28.07.05 17:25)  
> Здравствуйте. Есть одна таблица *.dbf на 1500000 записей.
> На диске занимает 590 МБайт. Запросы к этой таблице обрабатываются
> очень долго. Как можно ускорить выполнение запросов к таблице?
> В идеале хотелось бы получить возможность работы с таблицей
> в интерактивном режиме... Пока использую стандартный компонент
> Query.


Например, перенесть все на MSSQL server, хотя бы MSDE.
Ну, и пользовать ADOQuery.
Хотя, конечно, более всего оно зависит от самих запросов.

--
Regards, LVT.


 
AlexWlad ©   (2005-07-28 20:19) [2]

С такими объемами - на SQL сервера. Кста, а может провести нормализацию, или хотя-бы поделить на 2: 1-я "узкая" с полями для наиболее частых запросов, 2-я "широкая" с остальными.


 
Leonid Troyanovsky ©   (2005-07-28 20:24) [3]


> AlexWlad ©   (28.07.05 20:19) [2]
> С такими объемами - на SQL сервера. Кста, а может провести
> нормализацию, или хотя-бы поделить на 2: 1-я "узкая" с полями
> для наиболее частых запросов, 2-я "широкая" с остальными.


Не, делить надо на 3.
Это давно  установленный эмпирически факт,
впоследствии нашедший научное обоснование.

--
Regards, LVT.


 
Slym ©   (2005-07-29 04:49) [4]

Индексы?


 
Fay ©   (2005-07-29 06:51) [5]

2 Leonid Troyanovsky ©   (28.07.05 20:24) [3]
>Не, делить надо на 3.
>Это давно  установленный эмпирически факт,
> впоследствии нашедший научное обоснование.

А смайлик сложно было поставить? Ибо бред. 8)


 
Leonid Troyanovsky ©   (2005-07-29 08:57) [6]


> Fay ©   (29.07.05 06:51) [5]

> А смайлик сложно было поставить? Ибо бред. 8)


:)

--
Regards, LVT.


 
Anatoly Podgoretsky ©   (2005-07-29 09:00) [7]

Какой автор, такая и скорость


 
tormoz   (2005-07-29 11:53) [8]


> Anatoly Podgoretsky ©   (29.07.05 09:00) [7]

Спасибо огромное!!!!


> Leonid Troyanovsky ©   (28.07.05 20:13) [1]

Программа должна работать на локальной машине. Ставить на нее отдельно SQL-сервер никак, ресурсы не позволяют.

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

> AlexWlad ©   (28.07.05 20:19) [2]


 
-=snoop=- ©   (2005-07-29 11:59) [9]

не логично это работать с *.dbf через драйвер систему, отчего на фоксе все не зделать?? скорость вырастит в разы


 
Sergey13 ©   (2005-07-29 12:02) [10]

2 [8] tormoz   (29.07.05 11:53)
У тебя устаревшие сведения о SQL-серверах. Они ведь разные бывают. Например встроенные.


 
tormoz   (2005-07-29 12:03) [11]


> -=snoop=- ©   (29.07.05 11:59) [9]

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


 
tormoz   (2005-07-29 12:06) [12]


> Sergey13 ©   (29.07.05 12:02) [10]

Уже что-то... а можно поподробнее, пожалуйста? или где почитать можно? для Win 2000


 
-=snoop=- ©   (2005-07-29 12:07) [13]

просто из фокса есть возможность проще вытащить все возможности по оптимизации, индесы допустим


 
Sergey13 ©   (2005-07-29 12:10) [14]

2[12] tormoz   (29.07.05 12:06)
> или где почитать можно?
Тут и поищи - один из самых частых вопросов.
Если интересно мое мнение - Firebird 1.5 Еmbedded - лучший выбор.
Подробностей много на ibase.ru


 
k2 ©   (2005-07-29 12:11) [15]

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


 
tormoz   (2005-07-29 12:14) [16]


> k2 ©   (29.07.05 12:11) [15]

а если в запросе есть условие
... <имя поля> like "%<строка условия>%"...
как искать в куче таблиц? Выполнять 20-50 запросов последовательно?


 
ЮЮ ©   (2005-07-29 12:18) [17]

тогда остается ограничить пользователя запросами типа
 <имя поля> like "<строка условия>%"... + индексы по полям поиска.
А что там за информация, что приходится искать в середине поля?


 
k2 ©   (2005-07-29 12:23) [18]

2tormoz   (29.07.05 12:14)
а если в запросе есть условие
... <имя поля> like "%<строка условия>%"...
как искать в куче таблиц? Выполнять 20-50 запросов последовательно?

нет конешно, все к месту хорошо
допустим у тебя гарантированно в одном случае ищутся данные за текущий год,
в другом случае поднимаются из архива, можно тогда было бы разделить по годам
ну не получилось протелепать :)


 
tormoz   (2005-07-29 12:31) [19]

Ладно... Всем спасибо!!! Буду пытаться выбить денег на апгрейд машины и установки на нее SQl-сервера... По-детски проблему решить не удалось... :-(
Просто по вопросам безопасности, данный компьютер в сеть включать нельзя...


 
Sergey13 ©   (2005-07-29 12:41) [20]

2 [19] tormoz   (29.07.05 12:31)
А деньги то зачем просить? У тебя 386/486 что-ли? Если хотябы В98 работает, то и Firebird проканает.
Хотя машину обновить никогда не вредно. 8-)


 
Anatoly Podgoretsky ©   (2005-07-29 13:19) [21]

tormoz   (29.07.05 11:53) [8]
Программа должна работать на локальной машине. Ставить на нее отдельно SQL-сервер никак, ресурсы не позволяют.

Это у тебя ресурсы не позволяют использовать ФоксПро, а для локального SQL сервера должно хватить


 
alex_***   (2005-07-29 14:53) [22]

ресурсы не позволяют - системных ресурсов для работы с такими табличками уж точно хватит для работы SQL сервера или MSDE


 
AlexWlad ©   (2005-07-29 18:44) [23]

tormoz   (29.07.05 11:53) [8] и [19]

Не могу поверить, что такой объем инфы настолько безразличен начальству, что нельзя выбить денег. Никто не говорил про "тяжелые" сервера. Вполне хватит (учитывая 1-польз.) MSDE или  Firebird 1.5 Еmbedded - тут уж вопрос скорее религиозный :).


 
Fay ©   (2005-07-29 18:54) [24]

2 AlexWlad ©   (29.07.05 18:44) [23]
>> MSDE или Firebird 1.5 Еmbedded - тут уж вопрос скорее религиозный
Для меня это вАщЕ не вопрос : MSSQL (в любой инкарнации) рулит! 8)


 
AlexWlad ©   (2005-07-29 18:55) [25]

Fay ©   (29.07.05 18:54) [24]

Ох, зря написал... Ща как попрет... ;)


 
Виталий Панасенко   (2005-07-29 19:55) [26]

like даже при наличии индексов на локали(я о формате БД)  - тормоза конкретные.. если точное сравнение, то все нормально.. скорость, в смысле, приличная...


 
Desdechado ©   (2005-07-31 20:50) [27]

если в одной таблице хранится ВСЕ и еще в виде, который неформализован (для чего тогда такие бешенные LIKE?), то нужно менять не платформу, а структуру БД
а еще лучше, подход к проектированию БД и программных систем


 
Anatoly Podgoretsky ©   (2005-07-31 20:52) [28]

Надо менять только последнее, остальное прикладное.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.011 c
2-1123366404
msm
2005-08-07 02:13
2005.09.11
Преобразование минуты:секунды в секунды


4-1122004287
Jet
2005-07-22 07:51
2005.09.11
Печать на принтер Olivetti PR2 из Дельфи


14-1124074481
Alexander Panov
2005-08-15 06:54
2005.09.11
Просьба потестировать.


1-1124358762
PalPalych
2005-08-18 13:52
2005.09.11
I/O error 123


14-1124192531
SpyBoy
2005-08-16 15:42
2005.09.11
Книжки про Дельфинчика





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский