资源描述:
《oracle统计格网包含的gps车辆点位》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数据情况格网信息按照经纬度划分成正方形经度纬度开始结束开始结束以西南点划分111132.944300.87035569696725.19纬度0.000269950.00013497经度0.000310160.00015508开始经度开始纬度结束经度结束纬度宽高121.542229.8459121.632129.90169990.8525387.593333180333180格网数据示例如下:IDLONGIDLATID1028121.5435529.885291042121.5435529.8896331057121.5435529.8942851072121.5435529.89893
2、71087121.5438229.8477611102121.5438229.8524131116121.5438229.856756点位信息数据示例如下:CAR_NUMBERLONGIDLATIDBT0704121.59796929.889105BT0704121.59420829.888193BT0704121.58890529.886772BT0704121.58471729.881863查询每一类car有多少条gps数据:selectcar_number,count(car_number)astotalfromtaxi_shapegroupbycar_numberorderby
3、2;查询优化添加并行计算:/*+parallel(t,5)parallel(t2,5)use_hash(t,t2)full(t)full(t2)*/第一节使用SDO_GEOMETRY存储空间信息点位数据创建点位空间数据表createtabletaxishapasselect*fromtaxi;taxishap表添加字段shpae,类型为mdsys.sdo_geometry;根据xy更新shapeDECLAREBEGIN/*+parallel(t,5)*/--并行updatetaxishaptsetshape=SDO_GEOMETRY('POINT('
4、
5、t.longid
6、
7、''
8、
9、t.
10、latid
11、
12、')',4326)wherecar_number='BT0031';END;预估更新400万条记录2小时根据用户表填写空间元数据INSERTINTOUSER_SDO_GEOM_METADATAVALUES('taxishap','shape',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('x',121.0,122.0,0.005),MDSYS.SDO_DIM_ELEMENT('y',29.0,30.0,0.005)),4326);建立空间索引CREATEINDEXSPATIALIDX_taxishapONtaxishap(shape
13、)INDEXTYPEISMDSYS.SPATIAL_INDEX;格网数据根据格网中心点和格网间距更新格网数据1.添加字段shpae,类型为mdsys.sdo_geometry;2.根据格网中心点更新格网:--POLYGON((5.01.0,8.01.0,8.06.0,5.07.0,5.01.0))--dy=0.00031016,dy/2=0.00015508--dx=0.00026995,dx/2=0.00013497DECLAREdxnumber;dynumber;BEGINdx:=0.00013497;dy:=0.00015508;updatepositiontsetshape=S
14、DO_GEOMETRY('POLYGON(('
15、
16、(t.longid-dx)
17、
18、''
19、
20、(t.latid-dy)
21、
22、','
23、
24、(t.longid+dx)
25、
26、''
27、
28、(t.latid-dy)
29、
30、','
31、
32、(t.longid+dx)
33、
34、''
35、
36、(t.latid+dy)
37、
38、','
39、
40、(t.longid-dx)
41、
42、''
43、
44、(t.latid+dy)
45、
46、','
47、
48、(t.longid-dx)
49、
50、''
51、
52、(t.latid-dy)
53、
54、'))',4326);END;--11g,198秒--10g,执行时间较长,分开Whereid<10000--235秒Whereid>=10000andid<20000--
55、235秒Whereid>=20000andid<30000--235秒Whereid>=30000andid<40000--235秒Whereid>=40000andid<50000--235秒Whereid>=50000andid<60000–233秒Whereid>=60000andid<70000根据用户表填写空间元数据INSERTINTOUSER_SDO_GEOM_METADATAVALUES('position','shape',MD