Postgres оптимизация вопроса?

DoomUnit
Дата: 04.02.2015 07:00:27
PostgreSQL 9.3.3 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4), 64-bit

/*------ 04.02.2015 8:40:12 --------*/

EXPLAIN ANALYZE   SELECT  EXTRACT(EPOCH FROM   "F_Date"),
				"F_ConvertedValue",
				"F_TagName_ID" FROM
				"SC_Tag"."T_TagData"
				where
                "F_Date" > (localtimestamp - interval'1 hour') and
				"F_TagName_ID" in (73,72,39,64,76,75) 
				
				ORDER BY "F_Date" asc;;

/* Результат : "LOG:  duration: 11276.442 ms  statement: EXPLAIN ANALYZE SELECT EXTRACT(EPOCH FROM "F_Date"), "F_ConvertedValue", "F_TagName_ID" FROM "SC_Tag"."T_TagData" where "F_Date" > (localtimestamp - interval'1 hour') and "F_TagName_ID" in (73,72,39,64,76,75) ORDER BY "F_Date" asc;;

возвращено записей: 7 (выполнено: 11,279 с; всего: 11,279 с)" */



/*------ 04.02.2015 8:49:52 --------*/

EXPLAIN ANALYZE   SELECT  EXTRACT(EPOCH FROM   "F_Date"),
				"F_ConvertedValue",
				"F_TagName_ID" FROM
				"SC_Tag"."T_TagData"
				where
                "F_Date" > (localtimestamp - interval'1 hour') and
				"F_TagName_ID" in (73,72,39,64,76,75) 
				
				--ORDER BY "F_Date" asc;;

/* Результат : "LOG:  duration: 9359.324 ms  statement: EXPLAIN ANALYZE SELECT EXTRACT(EPOCH FROM "F_Date"), "F_ConvertedValue", "F_TagName_ID" FROM "SC_Tag"."T_TagData" where "F_Date" > (localtimestamp - interval'1 hour') and "F_TagName_ID" in (73,72,39,64,76,75)

возвращено записей: 4 (выполнено: 9,360 с; всего: 9,375 с)" */


Картинка с другого сайта.
Картинка с другого сайта.

это вообще кошмарно. может имеет смысл сортировать уже на клиенте али может какие другие соображения будут?
лопата
Дата: 04.02.2015 08:05:50
DoomUnit
PostgreSQL 9.3.3 on x86_64-unknown-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4), 64-bit

/*------ 04.02.2015 8:40:12 --------*/

EXPLAIN ANALYZE   SELECT  EXTRACT(EPOCH FROM   "F_Date"),
				"F_ConvertedValue",
				"F_TagName_ID" FROM
				"SC_Tag"."T_TagData"
				where
                "F_Date" > (localtimestamp - interval'1 hour') and
				"F_TagName_ID" in (73,72,39,64,76,75) 
				
				ORDER BY "F_Date" asc;;

/* Результат : "LOG:  duration: 11276.442 ms  statement: EXPLAIN ANALYZE SELECT EXTRACT(EPOCH FROM "F_Date"), "F_ConvertedValue", "F_TagName_ID" FROM "SC_Tag"."T_TagData" where "F_Date" > (localtimestamp - interval'1 hour') and "F_TagName_ID" in (73,72,39,64,76,75) ORDER BY "F_Date" asc;;

возвращено записей: 7 (выполнено: 11,279 с; всего: 11,279 с)" */



/*------ 04.02.2015 8:49:52 --------*/

EXPLAIN ANALYZE   SELECT  EXTRACT(EPOCH FROM   "F_Date"),
				"F_ConvertedValue",
				"F_TagName_ID" FROM
				"SC_Tag"."T_TagData"
				where
                "F_Date" > (localtimestamp - interval'1 hour') and
				"F_TagName_ID" in (73,72,39,64,76,75) 
				
				--ORDER BY "F_Date" asc;;

/* Результат : "LOG:  duration: 9359.324 ms  statement: EXPLAIN ANALYZE SELECT EXTRACT(EPOCH FROM "F_Date"), "F_ConvertedValue", "F_TagName_ID" FROM "SC_Tag"."T_TagData" where "F_Date" > (localtimestamp - interval'1 hour') and "F_TagName_ID" in (73,72,39,64,76,75)

возвращено записей: 4 (выполнено: 9,360 с; всего: 9,375 с)" */


Картинка с другого сайта.
Картинка с другого сайта.

это вообще кошмарно. может имеет смысл сортировать уже на клиенте али может какие другие соображения будут?


кошмарно быт таким negsv vskfrjv, и не видеть 29лямов rows removed by filter в приведенном собою же плане.

я так скажу -- "уж лучше на клиенте фильтровать " убив перед этим клиента 30 лямами записей, положив его наконец лицом вниз, и всыпав розог.


кстати, какого хера вы текст картинкой вставляете ? чтобы вас труднее было внего носом ткнуть ? так я и так скажу что вы pfghtltkmysq gblfhfc

убивать убивать убивать dfnys[ gblfhfcjd
rovan
Дата: 04.02.2015 08:37:44
DoomUnit, оба запроса на горячую запускались? Т.е. данные уже подгрузились в буферы? Как-то подозрительно выглядит двухсекундная сортировка менее, чем 10 строк (две секунды смотрю просто по разнице 11 против 9).
DoomUnit
Дата: 04.02.2015 08:44:52
ну сервачок изрядно грузится просто. вот и ищу способы оптимизации. а как прибить 30 млн строк то?
anon2
Дата: 04.02.2015 09:00:43
rovan, т.е вас только сортировка смутила? ;)
DoomUnit
Дата: 04.02.2015 09:08:31
так а как переписать запрос чтобы он быстрее работал?
/\/\/\/\/\/\
Дата: 04.02.2015 09:49:45
DoomUnit,

Никак. Этот запрос просто прекрасен.
DoomUnit
Дата: 04.02.2015 10:02:05
/\/\/\/\/\/\,

Картинка с другого сайта.
DoomUnit
Дата: 04.02.2015 10:02:46
ой млин дал жару с сарказмом((
лопата
Дата: 04.02.2015 10:03:08
DoomUnit
так а как переписать запрос чтобы он быстрее работал?


Use The Index, Luke!