powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Что можно сделать для сокращения времени обработки запроса?
19 сообщений из 69, страница 3 из 3
Что можно сделать для сокращения времени обработки запроса?
    #39266571
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vyegorovits_me,

что храниться в `ru_psk_point.way` -- точка? ломанная? замкнутый контур?

координаты откуда беруться? и что это -- фиксация каких-то мест?

вы считаете дистанцию от заданных координат и потом отбираете минимальныую сумму. Вы хотите найти `way`-ы, ближайшие к заданным координатам? Расстояние между координатами? Расстояния между `way`-ми? -- уточните!

если `ru_psk_point.way` используется в географических выражениях, почему не использовать тип geography?

зачем хранить точки `ru_psk_rels.parts` в виде массива и мучаться с индексами, может ввести подчинённую таблицу?


1. Точка(её координаты)
2. Координаты - это входящая переменная(в функции где этот запрос).
3. Минимальную сумму расстояний от стартовой входящей координаты до посадочной остановки и от конечной координаты до остановки для выхода. Далее беру id остановок(для дальнейшей обработки - списка маршрутов) и way-и остановок(для геометрической проверки принадлежности к линии маршрута).
4. Не знаю, просто стоит тип geometry, не думал вообще над этим и зачем это.
5. В таком виде предоставляет данные программа-импорт(osm2pgsql), в принципе я уже создал таблицу для извлечения индексов.
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39266609
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
its_me,

удф по всему у вас мухи копулируют в голове и коде.

он должен выглядеть как--то так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select id,parts,unnest(parts) as unnest, generate_subscripts(parts,1) as idx INTO opengeo.ru_psk_rels_parts_idx from opengeo.ru_psk_rels;

CREATE INDEX ru_psk_prels_parts_idx_id
  ON opengeo.ru_psk_rels_parts_idx
  USING btree
  (id, unnest);

CREATE OR REPLACE FUNCTION opengeo.bus_idx_rels_parts(IN bigint, IN bigint, OUT idx integer)
RETURNS integer AS
'SELECT idx from opengeo.ru_psk_rels_parts_idx where id=$1 and unnest=$2 '
LANGUAGE sql VOLATILE
COST 100;




при этом на прогретых данных имеем:

Код: sql
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.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
DO
$$
DECLARE 
	_t1 record;
	_t2	record;
	ok boolean;
	sum_dist double precision;
	sum_dist_min double precision;
	a_id_start	bigint[];
	a_id_end	bigint[];
	a_sum_dist double precision[];
	a_dist_start double precision[];
	a_dist_end double precision[];
	_result record;
BEGIN
	<<_t1_>>
	FOR _t1 IN
		(select osm_id as id_start, way as start_way, ST_Distance_Spheroid(ST_Transform(way,4326), ST_GeomFromText('POINT(28.2789393 57.8155523)',4326), 'SPHEROID["WGS 84",6378137,298.257223563]') as dist_start
		from (
				select osm_id, way from opengeo.ru_psk_point where public_transport='stop_position' and tags -> 'bus' = 'yes'
			)bus_points  
		ORDER BY dist_start ) 
	LOOP
		<<_t2_>>
		FOR _t2 IN 
			(select osm_id as id_end, way as end_way, ST_Distance_Spheroid(ST_Transform(way,4326), ST_GeomFromText('POINT(28.2951125 57.8141805)',4326), 'SPHEROID["WGS 84",6378137,298.257223563]') as dist_end
			from (
					select osm_id, way from opengeo.ru_psk_point where public_transport='stop_position' and tags -> 'bus' = 'yes'
					AND osm_id<> _t1.id_start -- ?
				)bus_points
				
			ORDER BY dist_end ) 
		LOOP 
			ok:= EXISTS (SELECT 1 FROM opengeo.ru_psk_rels rels
						WHERE
							array[_t1.id_start,_t2.id_end]<@rels.parts 
							and array['route','ref']<@rels.tags 

							and opengeo.bus_idx_rels_parts(rels.id,_t1.id_start)<opengeo.bus_idx_rels_parts(rels.id,_t2.id_end)
				)
				;
							
			sum_dist:= CASE WHEN ok THEN _t1.dist_start + _t2.dist_end END;
			sum_dist_min:=LEAST(sum_dist_min,sum_dist);
			IF ok THEN
				a_id_start	:= a_id_start	||	_t1.id_start;
				a_id_end	:=a_id_end		||	_t2.id_end;
				a_sum_dist	:=a_sum_dist	||	sum_dist;

				a_dist_start	:=a_dist_start	|| _t1.dist_start;
				a_dist_end 		:=a_dist_end	|| _t2.dist_end;
			END IF;
			

			IF _t2.dist_end >=sum_dist_min THEN
				exit _t2_;
			END IF;

			IF _t1.dist_start >=sum_dist_min THEN
				exit _t1_;
			END IF;
		END LOOP;
	END LOOP;
	
	SELECT * FROM (
	SELECT	unnest(a_id_start) AS id_start
			,unnest(a_id_end) AS id_end
			,unnest(a_sum_dist) AS sum_dist
			,unnest(a_dist_start) AS dist_start
			,unnest(a_dist_end) AS dist_end
	) foo ORDER BY sum_dist LIMIT 1
	INTO _result;

	raise NOTICE '%' , _result;
END;
$$;
-----------------------------------
NOTICE:  (2314760557,2314760553,139.332169287831,105.974855791139,33.357313496692)

Запрос успешно выполнен без возвращаемых данных за 40 мс.




ели я правильно понял про ваш unnest .
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39266617
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

и тогда без лишних структур:

Код: sql
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.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
DO
$$
DECLARE 
	_t1 record;
	_t2	record;
	ok boolean;
	sum_dist double precision;
	sum_dist_min double precision;
	a_id_start	bigint[];
	a_id_end	bigint[];
	a_sum_dist double precision[];
	a_dist_start double precision[];
	a_dist_end double precision[];
	_result record;
BEGIN
	<<_t1_>>
	FOR _t1 IN
		(select osm_id as id_start, way as start_way, ST_Distance_Spheroid(ST_Transform(way,4326), ST_GeomFromText('POINT(28.2789393 57.8155523)',4326), 'SPHEROID["WGS 84",6378137,298.257223563]') as dist_start
		from (
				select osm_id, way from opengeo.ru_psk_point where public_transport='stop_position' and tags -> 'bus' = 'yes'
			)bus_points  
		ORDER BY dist_start ) 
	LOOP
		<<_t2_>>
		FOR _t2 IN 
			(select osm_id as id_end, way as end_way, ST_Distance_Spheroid(ST_Transform(way,4326), ST_GeomFromText('POINT(28.2951125 57.8141805)',4326), 'SPHEROID["WGS 84",6378137,298.257223563]') as dist_end
			from (
					select osm_id, way from opengeo.ru_psk_point where public_transport='stop_position' and tags -> 'bus' = 'yes'
					AND osm_id<> _t1.id_start -- ?
				)bus_points
				
			ORDER BY dist_end ) 
		LOOP 
			ok:= EXISTS (SELECT 1 FROM opengeo.ru_psk_rels rels
						WHERE
							array[_t1.id_start,_t2.id_end]<@ rels.parts 
							and array['route','ref']<@ rels.tags
							--and opengeo.bus_idx_rels_parts(rels.id,_t1.id_start)<opengeo.bus_idx_rels_parts(rels.id,_t2.id_end)
							
							--AND array_position( rels.parts , _t1.id_start) < array_position( rels.parts , _t2.id_end) --9.5
							--/* --9.3:
							AND (
								(SELECT rn  FROM (SELECT unnest,row_number() over() AS rn FROM unnest(rels.parts)  ) foo WHERE unnest = _t1.id_start ORDER BY rn limit 1)
								<
								(SELECT rn  FROM (SELECT unnest,row_number() over() AS rn FROM unnest(rels.parts)  ) foo WHERE unnest = _t2.id_end ORDER BY rn desc limit 1 )
								)
							--*/
						);
				
							
			sum_dist:= CASE WHEN ok THEN _t1.dist_start + _t2.dist_end END;
			sum_dist_min:=LEAST(sum_dist_min,sum_dist);
			IF ok THEN
				a_id_start	:= a_id_start	||	_t1.id_start;
				a_id_end	:=a_id_end		||	_t2.id_end;
				a_sum_dist	:=a_sum_dist	||	sum_dist;

				a_dist_start	:=a_dist_start	|| _t1.dist_start;
				a_dist_end 		:=a_dist_end	|| _t2.dist_end;
			END IF;
			

			IF _t2.dist_end >=sum_dist_min THEN
				exit _t2_;
			END IF;

			IF _t1.dist_start >=sum_dist_min THEN
				exit _t1_;
			END IF;
		END LOOP;
	END LOOP;
	
	SELECT * FROM (
	SELECT	unnest(a_id_start) AS id_start
			,unnest(a_id_end) AS id_end
			,unnest(a_sum_dist) AS sum_dist
			,unnest(a_dist_start) AS dist_start
			,unnest(a_dist_end) AS dist_end
	) foo ORDER BY sum_dist LIMIT 1
	INTO _result;

	raise NOTICE '%' , _result;
END;
$$;

-------------------------------------
NOTICE:  (2314760557,2314760553,139.332169287831,105.974855791139,33.357313496692)

Запрос успешно выполнен без возвращаемых данных за 36 мс.

...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39266618
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwqits_me,

удф по всему у вас мухи копулируют в голове и коде.

он должен выглядеть как--то так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select id,parts,unnest(parts) as unnest, generate_subscripts(parts,1) as idx INTO opengeo.ru_psk_rels_parts_idx from opengeo.ru_psk_rels;

CREATE INDEX ru_psk_prels_parts_idx_id
  ON opengeo.ru_psk_rels_parts_idx
  USING btree
  (id, unnest);

CREATE OR REPLACE FUNCTION opengeo.bus_idx_rels_parts(IN bigint, IN bigint, OUT idx integer)
RETURNS integer AS
'SELECT idx from opengeo.ru_psk_rels_parts_idx where id=$1 and unnest=$2 '
LANGUAGE sql VOLATILE
COST 100;




при этом на прогретых данных имеем:

Код: sql
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.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
DO
$$
DECLARE 
	_t1 record;
	_t2	record;
	ok boolean;
	sum_dist double precision;
	sum_dist_min double precision;
	a_id_start	bigint[];
	a_id_end	bigint[];
	a_sum_dist double precision[];
	a_dist_start double precision[];
	a_dist_end double precision[];
	_result record;
BEGIN
	<<_t1_>>
	FOR _t1 IN
		(select osm_id as id_start, way as start_way, ST_Distance_Spheroid(ST_Transform(way,4326), ST_GeomFromText('POINT(28.2789393 57.8155523)',4326), 'SPHEROID["WGS 84",6378137,298.257223563]') as dist_start
		from (
				select osm_id, way from opengeo.ru_psk_point where public_transport='stop_position' and tags -> 'bus' = 'yes'
			)bus_points  
		ORDER BY dist_start ) 
	LOOP
		<<_t2_>>
		FOR _t2 IN 
			(select osm_id as id_end, way as end_way, ST_Distance_Spheroid(ST_Transform(way,4326), ST_GeomFromText('POINT(28.2951125 57.8141805)',4326), 'SPHEROID["WGS 84",6378137,298.257223563]') as dist_end
			from (
					select osm_id, way from opengeo.ru_psk_point where public_transport='stop_position' and tags -> 'bus' = 'yes'
					AND osm_id<> _t1.id_start -- ?
				)bus_points
				
			ORDER BY dist_end ) 
		LOOP 
			ok:= EXISTS (SELECT 1 FROM opengeo.ru_psk_rels rels
						WHERE
							array[_t1.id_start,_t2.id_end]<@rels.parts 
							and array['route','ref']<@rels.tags 

							and opengeo.bus_idx_rels_parts(rels.id,_t1.id_start)<opengeo.bus_idx_rels_parts(rels.id,_t2.id_end)
				)
				;
							
			sum_dist:= CASE WHEN ok THEN _t1.dist_start + _t2.dist_end END;
			sum_dist_min:=LEAST(sum_dist_min,sum_dist);
			IF ok THEN
				a_id_start	:= a_id_start	||	_t1.id_start;
				a_id_end	:=a_id_end		||	_t2.id_end;
				a_sum_dist	:=a_sum_dist	||	sum_dist;

				a_dist_start	:=a_dist_start	|| _t1.dist_start;
				a_dist_end 		:=a_dist_end	|| _t2.dist_end;
			END IF;
			

			IF _t2.dist_end >=sum_dist_min THEN
				exit _t2_;
			END IF;

			IF _t1.dist_start >=sum_dist_min THEN
				exit _t1_;
			END IF;
		END LOOP;
	END LOOP;
	
	SELECT * FROM (
	SELECT	unnest(a_id_start) AS id_start
			,unnest(a_id_end) AS id_end
			,unnest(a_sum_dist) AS sum_dist
			,unnest(a_dist_start) AS dist_start
			,unnest(a_dist_end) AS dist_end
	) foo ORDER BY sum_dist LIMIT 1
	INTO _result;

	raise NOTICE '%' , _result;
END;
$$;
-----------------------------------
NOTICE:  (2314760557,2314760553,139.332169287831,105.974855791139,33.357313496692)

Запрос успешно выполнен без возвращаемых данных за 40 мс.




ели я правильно понял про ваш unnest .

)))))Да, порядок такой!)))

P.S.: Боюсь понимать уже Вас(удф,мухи,да ещё и копулируют!!!ужас)
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39266622
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

Код: plaintext
1.
ЗАМЕЧАНИЕ:  (2314760557,2314760553,139.332169287356,105.974855790664,33.357313496692)
Запрос успешно выполнен без возвращаемых данных за 90 мс.

Это я Ваш DO выполнил, по времени у меня также мой запрос, в чем изюминка?(если аккуратно можно ответить)))
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39266626
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
its_meqwwq,

Код: plaintext
1.
ЗАМЕЧАНИЕ:  (2314760557,2314760553,139.332169287356,105.974855790664,33.357313496692)
Запрос успешно выполнен без возвращаемых данных за 90 мс.

Это я Ваш DO выполнил, по времени у меня также мой запрос, в чем изюминка?(если аккуратно можно ответить)))
что конкретно вас интересует ?
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39266643
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_t1_ и _t2_ - эточё такое?

ещё это непонятно, что тут происходит(это "или" или "и"?):

Код: plaintext
a_id_start	:= a_id_start || _t1.id_start;

с unnest-ом еще протестю...

и самый главный вопрос: это будет работать без потери времени при увеличении исходных таблиц?
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39266649
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39266706
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
its_meи самый главный вопрос: это будет работать без потери времени при увеличении исходных таблиц?
с потерей не менее чем квадратичной. при одинаковых длинах путей. если и пути вырастут -- всё будет еще гаже.


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

https://yandex.ru/yandsearch?text=multipoint distance postgis&lr=213

там где--то и оценки затратности от мощности геометрий были.
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39267816
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

Я правильно понял, что если все строки из первого/верхнего цикла не пройдут по фильтру(ok) с первой строкой внутреннего/второго цикла, то результата вообще не будет(я так понял описание выхода из блока/цикла)?
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39267841
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
its_meqwwq,

Я правильно понял, что если все строки из первого/верхнего цикла не пройдут по фильтру(ok) с первой строкой внутреннего/второго цикла, то результата вообще не будет(я так понял описание выхода из блока/цикла)?

народноемальчик, ты дебил ?

формально -- да, результата не будет.

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

можно идти в обратную сторону -- идти циклом не по точкам, а по путям. вложенно -- циклом по точкам путей (по индексу массивов). (там есть пара мест для оптимизации -- т.е. понятно , когда НЕ надо пересчитывать суммарные длинноты на шаге, посчитав расстояние от очередной точки).

т.е. затраты -- около ~ числа путей на число или квадрат (там на мультипойнты рассечения надо брать, но слева инкрементально расстояние считается, а справа его не надо пересчитывать часто -- если расстояние от выпавшей точки больше прежнего, т.ч. квадрата там не будет) числа точек в пути.
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39267860
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

А почему он "не может ничего не вернуть"?
Теоретически легко же может не вернуть?
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39268041
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
its_meqwwq,

А почему он "не может ничего не вернуть"?
Теоретически легко же может не вернуть?


Отвечаю сам себе. Вся проблема из-за маленького нюанса - я не знал , что 10>=null возвращает FALSE(где-то я встречал наоборот). Пришлось протестить этот вопрос отдельно. Теперь точно что-то вернёт, если такое есть там(пройдет все основные минимальные варианты). Так что прошу прощения за последнее сомнение.
На счет наоборот идти и других вариантов, на вскидку, будет быстрее или минимальны изменения по времени?
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39268053
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
its_meits_meqwwq,

А почему он "не может ничего не вернуть"?
Теоретически легко же может не вернуть?


Отвечаю сам себе. Вся проблема из-за маленького нюанса - я не знал , что 10>=null возвращает FALSE(где-то я встречал наоборот).мальчик, <<<>>>

Код: sql
1.
SELECT (10>=Null) IS NULL;


и не путайте результаты least | greatest с результатом сравнения. там результат если один из операндов null оговорен отдельным соглашением.
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39268056
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
its_meНа счет наоборот идти и других вариантов, на вскидку, будет быстрее или минимальны изменения по времени?

вам что--то мешает проверить ? напишите, учтите моменты, оптимизирующие проход -- и сравните.

всё в ваших руках. или вы хотите , чтобы за вас это сделали из чисто факультативного интереса ?
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39268080
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

Я протестил least и greatest с null и без - он просто игнорит его и всё.
На счет самому протестить, то я собирался попробовать идти геометрическим путём без цикла в голове по подбору вариантов по текущему направлению, поэтому спросил на вскидку. Да и спасибо за проделанную помощь, результат ведь уже есть положительный.
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39268090
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

А ещё, по поводу замечания что FALSE возвращает: для IF он его и возвращает, NULL это по любому=у не TRUE для IF.
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39268135
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
its_meqwwq,

А ещё, по поводу замечания что FALSE возвращает: для IF он его и возвращает, NULL это по любому=у не TRUE для IF.

не надо рисать херни, даже когда очень хочется

просто выполните :
Код: sql
1.
SELECT (10>=Null) =FALSE ;



3-х значная логика потому и называется 3-х значной, что

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
DO
$$
begin
	if null = true
	THEN
		RAISE NOTICE 'TRUE';
	ELSIF null = false THEN
		RAISE NOTICE 'FALSE';
	ELSE
		RAISE NOTICE 'ELSE';
	ENd IF;
end;
$$
...
Рейтинг: 0 / 0
Что можно сделать для сокращения времени обработки запроса?
    #39268147
its_me
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwwq,

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


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