sql >> Databasteknik >  >> RDS >> Sqlserver

Att välja ett bra rumsligt index för SQL Server 2008 med stora polygoner

I din indexfråga använder du:

CREATE SPATIAL INDEX [contasplit_sidx] ON [dbo].[ContASplit] 
(
    [geom]
)USING  GEOMETRY_GRID 
WITH (
BOUNDING_BOX =(-90, -180, 90, 180),
...

BOUNDING_BOX mappas därför till:

xmin = -90
ymin = -180
xmax = 90
ymax = 180
  • Längdgrad (-180 till 180 - betecknar öst/väst om meridianen) bör mappas till X
  • Latitud (-90 till 90 - anger hur långt norr eller söder om ekvatorn) bör kartläggas till Y

Så för att skapa BOUNDING_BOX för världen bör du använda:

CREATE SPATIAL INDEX [contasplit_sidx] ON [dbo].[ContASplit] 
(
    [geom]
)USING  GEOMETRY_GRID 
WITH (
BOUNDING_BOX =(-180, -90, 180, 90),
...

Detta bör skapa ett index som passar dina data och innebär att alla dina funktioner täcks av indexet.



  1. PL/SQL-procedur - för många värden

  2. Vem är diana, och varför låter hon inte mina databasobjekt kompilera?

  3. PHP MySQL - lägga till en rad i mitten av en loop

  4. MySQL Error 1153 - Fick ett paket större än 'max_allowed_packet' byte