powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Очень низкая производительность базы
9 сообщений из 9, страница 1 из 1
Очень низкая производительность базы
    #36599897
Intser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, имеется база db2 v9.5 на ubuntu. Наблюдаются очень большие тормоза на вставках.
Очень хорошо видно на выборке - простой запрос select count(*) на таблицу с 13 млн записей выполняется более 14-ти минут. С чего начать смотреть проблему?
Конфиг вот такой
Database configuration release level = 0x0c00
Database release level = 0x0c00

Database territory = US
Database code page = 1208
Database code set = UTF-8
Database country/region code = 1
Database collating sequence = IDENTITY
Alternate collating sequence (ALT_COLLATE) =
Number compatibility = OFF
Varchar2 compatibility = OFF
Database page size = 4096

Dynamic SQL Query management (DYN_QUERY_MGMT) = DISABLE

Discovery support for this database (DISCOVER_DB) = ENABLE

Restrict access = NO
Default query optimization class (DFT_QUERYOPT) = 5
Degree of parallelism (DFT_DEGREE) = 1
Continue upon arithmetic exceptions (DFT_SQLMATHWARN) = NO
Default refresh age (DFT_REFRESH_AGE) = 0
Default maintained table types for opt (DFT_MTTB_TYPES) = SYSTEM
Number of frequent values retained (NUM_FREQVALUES) = 10
Number of quantiles retained (NUM_QUANTILES) = 20

Decimal floating point rounding mode (DECFLT_ROUNDING) = ROUND_HALF_EVEN

Backup pending = NO

Database is consistent = YES
Rollforward pending = NO
Restore pending = NO

Multi-page file allocation enabled = YES

Log retain for recovery status = NO
User exit for logging status = NO

Self tuning memory (SELF_TUNING_MEM) = ON
Size of database shared memory (4KB) (DATABASE_MEMORY) = AUTOMATIC
Database memory threshold (DB_MEM_THRESH) = 10
Max storage for lock list (4KB) (LOCKLIST) = AUTOMATIC
Percent. of lock lists per application (MAXLOCKS) = AUTOMATIC
Package cache size (4KB) (PCKCACHESZ) = AUTOMATIC
Sort heap thres for shared sorts (4KB) (SHEAPTHRES_SHR) = AUTOMATIC
Sort list heap (4KB) (SORTHEAP) = AUTOMATIC

Database heap (4KB) (DBHEAP) = AUTOMATIC
Catalog cache size (4KB) (CATALOGCACHE_SZ) = 260
Log buffer size (4KB) (LOGBUFSZ) = 98
Utilities heap size (4KB) (UTIL_HEAP_SZ) = 5000
Buffer pool size (pages) (BUFFPAGE) = 1000
SQL statement heap (4KB) (STMTHEAP) = AUTOMATIC
Default application heap (4KB) (APPLHEAPSZ) = AUTOMATIC
Application Memory Size (4KB) (APPL_MEMORY) = AUTOMATIC
Statistics heap size (4KB) (STAT_HEAP_SZ) = AUTOMATIC

Interval for checking deadlock (ms) (DLCHKTIME) = 10000
Lock timeout (sec) (LOCKTIMEOUT) = -1

Changed pages threshold (CHNGPGS_THRESH) = 80
Number of asynchronous page cleaners (NUM_IOCLEANERS) = AUTOMATIC
Number of I/O servers (NUM_IOSERVERS) = AUTOMATIC
Index sort flag (INDEXSORT) = YES
Sequential detect flag (SEQDETECT) = YES
Default prefetch size (pages) (DFT_PREFETCH_SZ) = AUTOMATIC

Track modified pages (TRACKMOD) = OFF

Default number of containers = 1
Default tablespace extentsize (pages) (DFT_EXTENT_SZ) = 32

Max number of active applications (MAXAPPLS) = AUTOMATIC
Average number of active applications (AVG_APPLS) = AUTOMATIC
Max DB files open per application (MAXFILOP) = 61440

Log file size (4KB) (LOGFILSIZ) = 25000
Number of primary log files (LOGPRIMARY) = 13
Number of secondary log files (LOGSECOND) = 4
Changed path to log files (NEWLOGPATH) =
Path to log files = /localhome/db2inst1/db2inst1/NODE0000/SQL00006/SQLOGDIR/
Overflow log path (OVERFLOWLOGPATH) =
Mirror log path (MIRRORLOGPATH) =
First active log file =
Block log on disk full (BLK_LOG_DSK_FUL) = NO
Percent max primary log space by transaction (MAX_LOG) = 0
Num. of active log files for 1 active UOW(NUM_LOG_SPAN) = 0

Group commit count (MINCOMMIT) = 1
Percent log file reclaimed before soft chckpt (SOFTMAX) = 520
Log retain for recovery enabled (LOGRETAIN) = OFF
User exit for logging enabled (USEREXIT) = OFF

HADR database role = STANDARD
HADR local host name (HADR_LOCAL_HOST) =
HADR local service name (HADR_LOCAL_SVC) =
HADR remote host name (HADR_REMOTE_HOST) =
HADR remote service name (HADR_REMOTE_SVC) =
HADR instance name of remote server (HADR_REMOTE_INST) =
HADR timeout value (HADR_TIMEOUT) = 120
HADR log write synchronization mode (HADR_SYNCMODE) = NEARSYNC
HADR peer window duration (seconds) (HADR_PEER_WINDOW) = 0

First log archive method (LOGARCHMETH1) = OFF
Options for logarchmeth1 (LOGARCHOPT1) =
Second log archive method (LOGARCHMETH2) = OFF
Options for logarchmeth2 (LOGARCHOPT2) =
Failover log archive path (FAILARCHPATH) =
Number of log archive retries on error (NUMARCHRETRY) = 5
Log archive retry Delay (secs) (ARCHRETRYDELAY) = 20
Vendor options (VENDOROPT) =

Auto restart enabled (AUTORESTART) = ON
Index re-creation time and redo index build (INDEXREC) = SYSTEM (RESTART)
Log pages during index build (LOGINDEXBUILD) = OFF
Default number of loadrec sessions (DFT_LOADREC_SES) = 1
Number of database backups to retain (NUM_DB_BACKUPS) = 12
Recovery history retention (days) (REC_HIS_RETENTN) = 366
Auto deletion of recovery objects (AUTO_DEL_REC_OBJ) = OFF

TSM management class (TSM_MGMTCLASS) =
TSM node name (TSM_NODENAME) =
TSM owner (TSM_OWNER) =
TSM password (TSM_PASSWORD) =

Automatic maintenance (AUTO_MAINT) = ON
Automatic database backup (AUTO_DB_BACKUP) = OFF
Automatic table maintenance (AUTO_TBL_MAINT) = ON
Automatic runstats (AUTO_RUNSTATS) = ON
Automatic statement statistics (AUTO_STMT_STATS) = OFF
Automatic statistics profiling (AUTO_STATS_PROF) = OFF
Automatic profile updates (AUTO_PROF_UPD) = OFF
Automatic reorganization (AUTO_REORG) = OFF

Enable XML Character operations (ENABLE_XMLCHAR) = YES
WLM Collection Interval (minutes) (WLM_COLLECT_INT) = 0
...
Рейтинг: 0 / 0
Очень низкая производительность базы
    #36599938
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема может быть как в ОС (работают другие приложения, мало памяти, медленные диски) так и в db2.
Если смотреть на db2 то возможно у вас выделено мало памяти под буферный пул, и происходят частые чтения с диска.
Покажите вывод команды db2 get snapshot for database on warehous|grep -i buff
...
Рейтинг: 0 / 0
Очень низкая производительность базы
    #36599942
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точнее db2 get snapshot for database on имя_вашей_базы|grep -i buff
...
Рейтинг: 0 / 0
Очень низкая производительность базы
    #36599948
Intser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Buffer pool data logical reads = Not Collected
Buffer pool data physical reads = Not Collected
Buffer pool temporary data logical reads = Not Collected
Buffer pool temporary data physical reads = Not Collected
Buffer pool data writes = Not Collected
Buffer pool index logical reads = Not Collected
Buffer pool index physical reads = Not Collected
Buffer pool temporary index logical reads = Not Collected
Buffer pool temporary index physical reads = Not Collected
Buffer pool index writes = Not Collected
Buffer pool xda logical reads = Not Collected
Buffer pool xda physical reads = Not Collected
Buffer pool temporary xda logical reads = Not Collected
Buffer pool temporary xda physical reads = Not Collected
Buffer pool xda writes = Not Collected
Total buffer pool read time (milliseconds) = Not Collected
Total buffer pool write time (milliseconds)= Not Collected
No victim buffers available = Not Collected
Number log buffer full = 0
Log data found in buffer = 0
Memory Pool Type = Buffer Pool Heap
Memory Pool Type = Buffer Pool Heap
Secondary ID = System 32k buffer pool
Memory Pool Type = Buffer Pool Heap
Secondary ID = System 16k buffer pool
Memory Pool Type = Buffer Pool Heap
Secondary ID = System 8k buffer pool
Memory Pool Type = Buffer Pool Heap
Secondary ID = System 4k buffer pool
...
Рейтинг: 0 / 0
Очень низкая производительность базы
    #36599977
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас не включен монитор буферных пулов (вместо значений счетчиков пишет Not Collected). Чтобы включить монитор выполните команду
db2 UPDATE MONITOR SWITCHES USING BUFFERPOOL ON

затем запустите ваш проблемный запрос, и после того как запрос выполнится, покажите вывод команды db2 get snapshot for database on имя_вашей_базы|grep -i buff
...
Рейтинг: 0 / 0
Очень низкая производительность базы
    #36600110
Intser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос просто select count(*) from some_table
1
-----------
13797000

1 record(s) selected.


real 14m28.516s
user 0m0.020s
sys 0m0.020s

db2 get snapshot for database on vr | grep -i buff
Buffer pool data logical reads = 617
Buffer pool data physical reads = 187
Buffer pool temporary data logical reads = 0
Buffer pool temporary data physical reads = 0
Buffer pool data writes = 0
Buffer pool index logical reads = 143031
Buffer pool index physical reads = 142736
Buffer pool temporary index logical reads = 0
Buffer pool temporary index physical reads = 0
Buffer pool index writes = 0
Buffer pool xda logical reads = 0
Buffer pool xda physical reads = 0
Buffer pool temporary xda logical reads = 0
Buffer pool temporary xda physical reads = 0
Buffer pool xda writes = 0
Total buffer pool read time (milliseconds) = 866758
Total buffer pool write time (milliseconds)= 0
No victim buffers available = 133310
Number log buffer full = 0
Log data found in buffer = 0
Memory Pool Type = Buffer Pool Heap
Memory Pool Type = Buffer Pool Heap
Secondary ID = System 32k buffer pool
Memory Pool Type = Buffer Pool Heap
Secondary ID = System 16k buffer pool
Memory Pool Type = Buffer Pool Heap
Secondary ID = System 8k buffer pool
Memory Pool Type = Buffer Pool Heap
Secondary ID = System 4k buffer pool
...
Рейтинг: 0 / 0
Очень низкая производительность базы
    #36600181
Фотография Andron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пожалуй следовало бы с этого начать, дело в том что полный скан по большой таблице, как у вас, никогда не будет быстрым, только если вся таблица целиком не влезет в буферный пул. Размеры буферного пула как правило значительно меньше размеров больших таблиц и всегда будет иметь место прямое чтение с диска. Поэтому замерять производительность базы путем select count(*) from bigtable не имеет особого смысла.
Если приложения часто читают из больших таблиц, то для увеличения производительности следует выделить отдельный буферный пул для больших таблиц, и отдельный для остальных. В этом случае остальные таблицы будут кэшироваться значительно лучше.
...
Рейтинг: 0 / 0
Очень низкая производительность базы
    #36600203
Intser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запрос другой, но на этой базе он вообще не отрабатывает за конечное время. Запрос количества строк сделал чтобы оценить обьемы.
...
Рейтинг: 0 / 0
Очень низкая производительность базы
    #36600221
mitek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IntserЗапрос другой, но на этой базе он вообще не отрабатывает за конечное время. Запрос количества строк сделал чтобы оценить обьемы.
Ну тогда включайте все монитор-свичи и смотрите на ваш запрос в SYSIBMADM.SNAPDYN_SQL
Во время выполнения мониторьте соответстсвующего агента в db2top и поглядывайте на sar и iostat
Скорее всего картина прояснится.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Очень низкая производительность базы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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