Daha çox

Postgis məkan indeksi istifadə edilməyib


Məndə aşağıdakı cədvəl var:

Cədvəl "osm_france.france_2po_4pgr" Sütun | Yazın | Dəyişdiricilər --------------- + --------------------------- + ----- ------ id | tam ədəd | null deyil osm_id | bigint | osm_name | xarakter dəyişir | osm_meta | xarakter dəyişir | osm_source_id | bigint | osm_target_id | bigint | clazz | tam ədəd | bayraqlar | tam ədəd | mənbə | tam ədəd | hədəf | tam ədəd | km | ikiqat dəqiqlik | kmh | tam ədəd | dəyəri | ikiqat dəqiqlik | reverse_cost | ikiqat dəqiqlik | x1 | ikiqat dəqiqlik | y1 | ikiqat dəqiqlik | x2 | ikiqat dəqiqlik | y2 | ikiqat dəqiqlik | geom_way | həndəsə (LineString, 4326) | İndekslər: "pkey_france_2po_4pgr" İLK KEY

Gördüyünüz kimi, geom_way sütunu üçün bir məkan indeksi mövcuddur. Təhlükəsizlik üçün masada VAKUM ANALİZİ etdim.

İndi bu çox sadə sorğunu aparıram:

* seçin osm_france.france_2po_4pgr burada ST_DWITHIN (St_TRANSFORM (geom_way, 3035), ST_transform (ST_SetSRID (ST_MakePoint (2.3, 48.8), 4326), 3035), 100);

Beləliklə, müəyyən bir nöqtədən 100 metr məsafədəki bütün həndəsələri axtarıram (metr səviyyəsini təyin etmək üçün SRID-ləri 4326-dan 3035-ə çevirirəm).

Təhlil məhsullarını izah edin:

france_2po_4pgr haqqında Seq Scan (qiymət = 0.00 ... 1630779,00 satır = 69644 width = 293) (faktiki vaxt = 35,044 ... 9407,356 satır = 3 loops = 1) Filter: ((st_transform (geom_way, 3035) && "0103000020DB0B0000010000000500000046D8C5565EA84C41A950F47CDFFF454146D8C5565EA84C41A950F47C4300464146D8C556C2A84C41A950F47C4300464146D8C556C2A84C41A950F47CDFFF454146D8C5565EA84C41A950F47CDFFF4541" :: həndəsə) və ('0101000020DB0B000046D8C55690A84C41A950F47C11004641' :: həndəsə && st_expand (st_transform (geom_way, 3035), 100 :: ikiqat dəqiqlik)) AND _st_dwithin :: st_transform (geom_way, 3035) Filtrə görə: 5225288 Planlaşdırma müddəti: 0.517 ms İcra müddəti: 9407.390 ms

Niyə bu sorğu mövcud məkan indeksindən istifadə etmir?


Bunun ST_TRANSFORM istifadə etdiyinizə görə şübhələnirəm. Bəlkə st_transform (geom_way, 3035) üzərində bir indeks yaratmağa cəhd edə bilərsiniz - buraya baxın:


Videoya baxın: PostgreSQL Tutorial: How to download and install PostGIS Extension EN (Oktyabr 2021).