|
|
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
Имеется таблица в БД .mdb, количество записей - 2 млн. Порекомендуйте - что можно реализовать для повышения быстродействия при работе с этой таблицей, запросов, основанных на ней и т.п. Индексирование - это понятно, но все-равно скорость не ахти. Может, конечно, я как-то не так делаю... ЧТО ПОСОВЕТУЕТЕ, интересно "послушать" Ваши мнения спецов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 06:01 |
|
||
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
Вариант 1: если это возможно, то раздели базу на 2 - архивную и оперативную. В результате можно существенно повысить скорость обращения к оперативной базе. Вариант 2: Если база многопользовательская, то можно использовать терминальное решение. Это сильно разгрузит сетку и существенно повысит быстродействие. Вариант 3: Вынеси таблицы на MSSQL (MSDE), прилинкуй их к клиентской mdb'шке. Для наиболее "тяжелых" запросов используй запросы к серверу. Вариант 4, самый правильный: перенеси базу под MSSQL (MSDE), в качестве клиента используй проект adp, или другими словами переходи на технологию клиент-сервер. Конечно если используется множество форм и отчетов, работа по переносу может оказаться достаточно сложной, к тому же клиент-сервер требует изменения логики программирования. В результате если вынести бизнес-логику на сервер, и при условии правильного проектирования структуры базы, быстродействие окажется самым высоким среди предложеных вариантов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 07:10 |
|
||
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
1. индексы 2. сжатие 3. тщательный подбор типов данных, там где достаточно байт - использовать только байт, и т.д. я для этого отказывался от автонумерации, делал ее сам и помещал в кеш удаляемые ID. 4. дефрагментация диска 5. побольше оперативки 6. побыстрее камень 7. переход на ORACLE или MS SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 07:13 |
|
||
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
СПАСИБО БОЛЬШОЕ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 07:23 |
|
||
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
3. тщательный подбор типов данных, там где достаточно байт - использовать только байт, и т.д. я для этого отказывался от автонумерации, делал ее сам и помещал в кеш удаляемые ID. vdimas , поясни как отказ от автонумерации может повысить быстродействие? По моему как раз наоборот. К примеру, как ты получишь следующее значение? Max? на 2 000 000 записей? К тому же в многопользовательской среде это практически гарантия проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 07:26 |
|
||
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
поясняю, вводится специальная таблица для всех счетчиков в системе, и еще одна специальная таблица-кеш, где хранятся пропущенные (удаленные) ID-шки. Этот способ проверен уже на 3-х немаленьких системах. А быстродействие это повышает очень просто. После тщательного подбора типов данных размер базы данных может упасть вдвое. А уменьшение вдвое размера базы - это в среднем увеличение в четыре раза быстродействия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 08:04 |
|
||
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
Pavel писал:К тому же в многопользовательской среде это практически гарантия проблем. Аксесовская реализация счетчиков - тоже не ахти и почти гарантия проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 11:06 |
|
||
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
Pavel писал:Вариант 2: Если база многопользовательская, то можно использовать терминальное решение. Это сильно разгрузит сетку и существенно повысит быстродействие. А не просадится ли сервер от большого количества пользователей?? Pavel писал:Вариант 3: Вынеси таблицы на MSSQL (MSDE), прилинкуй их к клиентской mdb'шке. Для наиболее "тяжелых" запросов используй запросы к серверу. В большинстве случаев от такого решения быстродействие только снизится. Или придется практически все запросы переделывать на запросы к серверу (не только тяжелые, но и простые, типа "Delete * From Table1"), да еще и структуру данных подправить, Timestamp'ов в таблицы подабавлять (сам не пробовал, но говорят помогает) А вот вариант 4 ( "перенеси базу под MSSQL (MSDE), в качестве клиента используй проект adp ") - самое оно, если не возможен вариант 1 (" раздели базу на 2 - архивную и оперативную "). Плохо становится аксесу с таким количеством записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 11:15 |
|
||
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
Pavel писал:К примеру, как ты получишь следующее значение? Max? на 2 000 000 записей? Отработает моментально (если поле индексированно) Господи, что ж это я на Павла то накинулся? Я не со зла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 11:18 |
|
||
|
Требуется совет по быстродействию БД !
|
|||
|---|---|---|---|
|
#18+
Дело в том, что я все больше по теоретической части :). И по MSSQL. Там счетчики не глючат. Зачастую возникает проблема сквозной нумерации, тогда решение vdimas вполне оправдано. Главное чтобы вопрошающему помогло. Господа, думаемаем! Поменьше пьем и побольше думаем! Ик! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2003, 14:36 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32297670&tid=1678789]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
51ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 371ms |

| 0 / 0 |
