Hiệu suất của PostGis vs Oracle Spatial 11g


8

Tôi đang gặp vấn đề về hiệu năng khi cập nhật bảng trong Oracle Spatial 11G trong khi chuyển đổi 63.000.000 điểm sang định dạng WKT. Tôi cũng đã làm một so sánh với Postgres. Cả Postgres và Oracle đều chạy trong hai máy ảo được lưu trữ bởi cùng một máy chủ.

Postgres: bộ xử lý 12, ram 64GB

create table alldata(geom geometry(Point, 4326));
alter table alldata add column wkt4326 varchar(100);
update alldata set wkt4326 = St_AsText(geom) -- 25 minutes

Oracle 11G: bộ xử lý 12, ram 40GB, pga + sga = 8GB tối đa

create table alldata(geom sdo_geometry); -- e.g.: SDO_GEOMETRY(2001, 4326, SDO_POINT_TYPE(aLon, aLat, null), null, null)
alter table alldata add (wkt4326 varchar(100));
-- **Did not complete in a hour...** 
update alldatafiltered set wkt4326 = SDO_UTIL.TO_WKTGEOMETRY(geom); 

Tại sao Postgres vượt trội hơn Oracle trong khi cập nhật bảng? Những nguyên nhân có thể ảnh hưởng đến hiệu suất không gian của Oracle?

Hiện tại tôi không tận dụng bất kỳ chỉ số không gian nào.


1
Mục đích của bài tập này là gì? Hiệu suất chỉ thực sự là mối quan tâm đối với một quá trình sẽ được lặp lại và tôi không thể thấy lý do để lặp lại điều này. UPDATElà một hoạt động rất tốn kém cho quét toàn bộ bảng; bạn nên sử dụng một CREATE TABLE ... AScấu trúc.
Vince

Tôi không thấy bất cứ điều gì cụ thể về GIS ở đây. Có thể TO_WKTGEOMETRY chậm, có lẽ Oracle của bạn tạo và thực hiện các giao dịch quá nhỏ hoặc có một cái gì đó khác có thể được tối ưu hóa.
dùng49584

Sử dụng Oracle, bạn phải khác biệt giữa Trình định vị Oracle, đó là phiên bản tiêu chuẩn và Thẻ không gian của Oracle, nhanh hơn đáng kể, nhưng rất tốn kém. Nhiều phương thức như SDO_UTIL.TO_WKTGEOMETRY được triển khai trong Java, đó là lý do tại sao chúng không có sẵn trong phiên bản Oracles Express (không có Java). Không có Cardridge không gian, các phương thức này dường như được diễn giải (chậm).
wumpz

Câu trả lời:


8

Oracle Spatial và Postgis đều có ưu và nhược điểm riêng. Trong khi xử lý dữ liệu không gian, Postgis luôn vượt trội so với Oracle Spatial. Tôi đã làm việc được 2 năm trên Oracle Spatial và gần đây tôi đã chuyển sang PostGIS và tôi đã thấy một sự khác biệt lớn về hiệu suất trong cả hai.

Lý do tại sao nó thực hiện nhanh hơn nhiều là vì phân tích dữ liệu không gian. Trong nhiều nghiên cứu trường hợp, người ta đã thấy rằng PostGIS nhanh hơn 300% -400% so với Oracle Spatial.

PostGIS sử dụng GEOS (Geometry Engine - Open Source) để phân tích hình học trong khi không gian của Oracle có công cụ hình học riêng có phân tích cú pháp rất thấp so với GEOS.

Tôi đã tìm thấy này nghiên cứu trường hợp là rất hữu ích để so sánh hiệu suất giữa PostGIS và Oracle Spatial.

Theo quan điểm và kinh nghiệm cá nhân của tôi Nguồn mở luôn đạt kết quả Độc quyền trong Hiệu suất.


1
PostGIS không sử dụng GEOS để phân tích hình học. Đó là tất cả PostGIS bản địa. GEOS được sử dụng cho một số hoạt động của geomtry trong PostGIS
Nicklas Avén
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.