powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SSD диск для temp_tablespaces
3 сообщений из 3, страница 1 из 1
SSD диск для temp_tablespaces
    #38497109
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.

На
PostgreSQL 9.2.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit живет БД, к которой обращается MS OLAP. Подключение через PGNP OLEDB Provider, который в свою очередь работает - открывая курсоры. При перепроцесинге некоторых больших измерений считываются большая таблица 0,7 млр строк (быстро растет) с приджоиными маленькими. Все таблиц участвующих в запросе материализуются, предположительно они не влазиют в память. Установка SSD диска для temp_tablespaces сможет ли улучшить время выполнения запроса?. Ваше мнение?

Спасибо.
...
Рейтинг: 0 / 0
SSD диск для temp_tablespaces
    #38497203
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gold_Доброго времени суток.

На
PostgreSQL 9.2.4 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit живет БД, к которой обращается MS OLAP. Подключение через PGNP OLEDB Provider, который в свою очередь работает - открывая курсоры. При перепроцесинге некоторых больших измерений считываются большая таблица 0,7 млр строк (быстро растет) с приджоиными маленькими. Все таблиц участвующих в запросе материализуются, предположительно они не влазиют в память. Установка SSD диска для temp_tablespaces сможет ли улучшить время выполнения запроса?. Ваше мнение?

Спасибо.

explain analyze покажите примера запроса... а дальше уже можно думать....
ну и log_temp_files включите на базе и посмотрите реально ли есть временные файлы и какого размера
вомзожноу вас work_mem по умолчанию стоит а это очень очень мало для OLAP задач.

т.е. сначала надо с настройкой базы и запросами разбираться а потом уже про новое железо думать
...
Рейтинг: 0 / 0
SSD диск для temp_tablespaces
    #38558394
Gold_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приношу всем извинения, что я "перекрылся". Особенно Maxim'у

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

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
 	SELECT "olap_availability"."olap_availability0_0" AS "olap_availability0_0","olap_availability"."olap_availabilityhotel_weight0_1" AS "olap_availabilityhotel_weight0_1","olap_availability"."olap_availabilityregion_weight0_2" AS "olap_availabilityregion_weight0_2","olap_availability"."olap_availabilityserp_hotel_weight0_3" AS "olap_availabilityserp_hotel_weight0_3","olap_availability"."olap_availabilitybw_los_weight_in_region0_4" AS "olap_availabilitybw_los_weight_in_region0_4","olap_availability"."olap_availabilitynull_region_weight0_5" AS "olap_availabilitynull_region_weight0_5","olap_availability"."olap_availabilityhotel_id0_6" AS "olap_availabilityhotel_id0_6","olap_availability"."olap_availabilityarrival_date0_7" AS "olap_availabilityarrival_date0_7","olap_availability"."olap_availabilityavailable_type_compare_id0_8" AS
 "olap_availabilityavailable_type_compare_id0_8","olap_availability"."olap_availabilityis_available0_9" AS "olap_availabilityis_available0_9","olap_availability"."olap_availabilityis_booking_available0_10" AS "olap_availabilityis_booking_available0_10","olap_availability"."olap_availabilitybooking_window_id0_11" AS "olap_availabilitybooking_window_id0_11","olap_availability"."olap_availabilitylos_id0_12" AS "olap_availabilitylos_id0_12","olap_availability"."olap_availabilitytype_price_id0_13" AS "olap_availabilitytype_price_id0_13","olap_availability"."olap_availabilityis_matched0_14" AS "olap_availabilityis_matched0_14","olap_availability"."olap_availabilityscan_date0_15" AS "olap_availabilityscan_date0_15","olap_availability"."olap_availabilityregion_id0_16" AS "olap_availabilityregion_id0_16" FROM (SELECT 1 AS "olap_availability0_0","hotel_weight" AS
  "olap_availabilityhotel_weight0_1","region_weight" AS "olap_availabilityregion_weight0_2","serp_hotel_weight" AS "olap_availabilityserp_hotel_weight0_3","bw_los_weight_in_region" AS "olap_availabilitybw_los_weight_in_region0_4","null_region_weight" AS "olap_availabilitynull_region_weight0_5","hotel_id" AS "olap_availabilityhotel_id0_6","arrival_date" AS "olap_availabilityarrival_date0_7","available_type_compare_id" AS "olap_availabilityavailable_type_compare_id0_8","is_available" AS "olap_availabilityis_available0_9","is_booking_available" AS "olap_availabilityis_booking_available0_10","booking_window_id" AS "olap_availabilitybooking_window_id0_11","los_id" AS "olap_availabilitylos_id0_12","type_price_id" AS "olap_availabilitytype_price_id0_13","is_matched" AS "olap_availabilityis_matched0_14","scan_date" AS "olap_availabilityscan_date0_15","region_id" AS
  "olap_availabilityregion_id0_16" FROM (SELECT "availability"."id","availability"."hotel_id","availability"."scan_date","availability"."arrival_date","availability"."los","availability"."min_price","availability"."is_available","availability"."is_booking_available","availability"."available_type_compare_id","availability"."booking_window_id","availability"."type_price_id","availability"."los_id","availability"."is_matched","availability"."is_available_same_hotel","availability"."hotel_weight","availability"."region_weight","availability"."total_weight","availability"."region_id","availability"."serp_hotel_weight","availability"."bw_los_weight_in_region","availability"."null_region_weight" FROM "olap"."availability_weight_v2" AS availability WHERE "availability"."scan_date"<'2013-11-01') AS "availability_weight_v2") AS "olap_availability"
 	Merge Left Join  (cost=128751184.13..1356038413.25 rows=562243283 width=80) (actual time=6809678.356..20796240.528 rows=547884856 loops=1)
 	  Merge Cond: ((a.report_date = s.request_date) AND (r.id = s.region_id))
 	  Join Filter: ((a.length_of_stay = s.length_of_stay) AND ((a.arrival_date - a.report_date) = s.booking_window))
 	  Rows Removed by Join Filter: 14217585621
 	  ->  Nested Loop Left Join  (cost=128458348.63..1337116377.30 rows=562243283 width=72) (actual time=6807735.766..17163813.460 rows=547884856 loops=1)
 	        ->  Nested Loop Left Join  (cost=128458348.63..316535747.90 rows=562243283 width=60) (actual time=6807661.886..15796964.551 rows=547884856 loops=1)
 	              Join Filter: ((a.length_of_stay)::integer <@ l.los_range)
 	              Rows Removed by Join Filter: 16436545680
 	              ->  Nested Loop Left Join  (cost=128458348.63..257500202.11 rows=562243283 width=56) (actual time=6807661.714..11598929.081 rows=547884856 loops=1)
 	                    Join Filter: (((COALESCE(a.min_price, a.result) / a.length_of_stay) / 100) <@ "*VALUES*".column3)
 	                    Rows Removed by Join Filter: 1643654568
 	                    ->  Nested Loop Left Join  (cost=128458348.63..212520739.41 rows=562243283 width=52) (actual time=6807661.679..10675631.705 rows=547884856 loops=1)
 	                          Join Filter: (w.booking_window_range @> (a.arrival_date - a.report_date))
 	                          Rows Removed by Join Filter: 9861927408
 	                          ->  Merge Left Join  (cost=128458348.63..133806678.69 rows=562243283 width=48) (actual time=6807517.107..7808245.056 rows=547884856 loops=1)
 	                                Merge Cond: ((a.report_date = rw.report_date) AND (r.id = rw.region_id))
 	                                ->  Sort  (cost=126430543.23..127836151.44 rows=562243283 width=36) (actual time=6787238.050..7396172.136 rows=547884856 loops=1)
 	                                      Sort Key: a.report_date, r.id
 	                                      Sort Method: external merge  Disk: 26778352kB
 	                                      ->  Hash Left Join  (cost=448888.99..29344144.98 rows=562243283 width=36) (actual time=70660.641..2592363.866 rows=547884856 loops=1)
 	                                            Hash Cond: (a.ostrovok_hotel_id = h.id)
 	                                            ->  Seq Scan on availability_parity a  (cost=0.00..18353194.44 rows=562243283 width=28) (actual time=68494.541..2176404.560 rows=547884856 loops=1)
 	                                                  Filter: (report_date < '2013-11-01'::date)
 	                                                  Rows Removed by Filter: 284754699
 	                                            ->  Hash  (cost=440402.70..440402.70 rows=678903 width=12) (actual time=2165.845..2165.845 rows=664688 loops=1)
 	                                                  Buckets: 131072  Batches: 1  Memory Usage: 28505kB
 	                                                  ->  Hash Left Join  (cost=17422.99..440402.70 rows=678903 width=12) (actual time=514.289..1963.554 rows=664688 loops=1)
 	                                                        Hash Cond: (h.region_id = r.id)
 	                                                        ->  Seq Scan on hotel h  (cost=0.00..410324.03 rows=678903 width=8) (actual time=0.010..1062.149 rows=664688 loops=1)
 	                                                        ->  Hash  (cost=15336.33..15336.33 rows=166933 width=4) (actual time=514.128..514.128 rows=166933 loops=1)
 	                                                              Buckets: 32768  Batches: 1  Memory Usage: 5869kB
 	                                                              ->  Seq Scan on region r  (cost=0.00..15336.33 rows=166933 width=4) (actual time=0.012..480.104 rows=166933 loops=1)
 	                                ->  Sort  (cost=1678143.04..1709330.74 rows=12475082 width=20) (actual time=18699.385..83060.589 rows=556774593 loops=1)
 	                                      Sort Key: rw.report_date, rw.region_id
 	                                      Sort Method: quicksort  Memory: 1016631kB
 	                                      ->  Seq Scan on region_stat rw  (cost=0.00..207795.82 rows=12475082 width=20) (actual time=18.527..4270.382 rows=12633889 loops=1)
 	                          ->  Materialize  (cost=0.00..1.12 rows=8 width=36) (actual time=0.000..0.001 rows=19 loops=547884856)
 	                                ->  Seq Scan on booking_window w  (cost=0.00..1.08 rows=8 width=36) (actual time=28.454..28.464 rows=19 loops=1)
 	                    ->  Materialize  (cost=0.00..0.07 rows=4 width=36) (actual time=0.000..0.000 rows=4 loops=547884856)
 	                          ->  Values Scan on "*VALUES*"  (cost=0.00..0.05 rows=4 width=36) (actual time=0.010..0.016 rows=4 loops=1)
 	              ->  Materialize  (cost=0.00..1.09 rows=6 width=36) (actual time=0.000..0.002 rows=31 loops=547884856)
 	                    ->  Seq Scan on los l  (cost=0.00..1.06 rows=6 width=36) (actual time=0.146..0.152 rows=31 loops=1)
 	        ->  Index Scan using pkey_hotel_stat on hotel_stat hw  (cost=0.00..1.81 rows=1 width=20) (actual time=0.002..0.002 rows=0 loops=547884856)
 	              Index Cond: ((a.report_date = report_date) AND (a.ostrovok_hotel_id = hotel_id))
 	  ->  Materialize  (cost=0.00..274992.84 rows=2740286 width=30) (actual time=45.303..725780.159 rows=14250174709 loops=1)
 	        ->  Index Scan using serp_request_stat_copy_pkey on region_request_stat s  (cost=0.00..268142.12 rows=2740286 width=30) (actual time=45.249..2040.106 rows=2391432 loops=1)

...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / SSD диск для temp_tablespaces
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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