Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Kiểu dữ liệu địa lý trong sql server 2008 tốt như thế nào?

Nếu việc xử lý của bạn chỉ là một cặp Lat / Lng tiêu chuẩn như bạn mô tả và tất cả những gì bạn làm chỉ là tra cứu đơn giản, thì có lẽ bạn sẽ không đạt được nhiều lợi ích trong cách tăng tốc độ bằng cách sử dụng Kiểu hình học.

Tuy nhiên, nếu bạn muốn mạo hiểm hơn theo ý mình, thì việc chuyển sang sử dụng các loại Hình học sẽ mở ra một thế giới hoàn toàn mới cho bạn chứ không chỉ dành cho tìm kiếm.

Ví dụ:(Dựa trên một dự án mà tôi đang thực hiện) bạn có thể (Nếu đó là dữ liệu của Anh) tải xuống các định nghĩa đa giác cho tất cả các thị trấn / làng / thành phố cho một khu vực nhất định, sau đó thực hiện các tham chiếu chéo để tìm kiếm trong một thị trấn cụ thể, hoặc nếu bạn có bản đồ đường đi, bạn có thể tìm thấy những khách hàng nào sống bên cạnh các tuyến đường giao hàng chính, đường cao tốc, đường chính, tất cả các loại.

Bạn cũng có thể thực hiện một số báo cáo rất lạ mắt, tưởng tượng một bản đồ của các thị trấn, nơi mỗi đường viền được vẽ trên bản đồ, sau đó tô bóng bằng màu để hiển thị mật độ khách hàng trong một khu vực, một số SQL hình học đơn giản sẽ dễ dàng trả lại cho bạn một con số thẳng từ cơ sở dữ liệu, để vẽ biểu đồ loại thông tin này.

Sau đó, có theo dõi, tôi không biết bạn xử lý dữ liệu nào hoặc tại sao bạn có khách hàng, nhưng nếu bạn giao bất cứ thứ gì, cung cấp cho các phối hợp của xe giao hàng, sẽ cho bạn biết mức độ gần gũi của nó với một khách hàng nhất định.

Đối với câu hỏi STDistance có nhanh không? Thực sự thì điều đó rất khó nói, tôi nghĩ câu hỏi hay hơn là "Nó có nhanh so với .....", rất khó để nói có hay không, trừ khi bạn có thứ gì đó để so sánh với nó.

Chỉ mục không gian là một trong những lý do chính để di chuyển dữ liệu của bạn sang cơ sở dữ liệu nhận biết địa lý, chúng được tối ưu hóa để tạo ra kết quả tốt nhất cho một nhiệm vụ nhất định, nhưng giống như bất kỳ cơ sở dữ liệu nào, nếu bạn tạo chỉ mục xấu, thì bạn sẽ nhận được hiệu suất kém.

Nói chung, bạn chắc chắn sẽ thấy sự gia tăng tốc độ của một số loại, bởi vì các phép toán trong phân loại và lập chỉ mục nhận thức rõ hơn về mục đích của dữ liệu thay vì chỉ hoạt động khá tuyến tính như một chỉ mục thông thường.

Cũng nên nhớ rằng máy chủ SQL càng mạnh, bạn sẽ nhận được kết quả tốt hơn.

Một điểm cuối cùng cần đề cập là quản lý dữ liệu, nếu bạn sử dụng cơ sở dữ liệu nhận biết GIS, thì điều đó sẽ mở ra con đường cho bạn sử dụng gói GIS như ArcMap hoặc MapInfo để quản lý, chỉnh sửa và trực quan hóa dữ liệu của bạn, có nghĩa là việc sửa chữa rất dễ dàng để thực hiện bằng cách trỏ, nhấp và kéo.

Lời khuyên của tôi là tạo một bảng cạnh nhau cho bảng hiện có của bạn, bảng này được định dạng cho các hoạt động không gian, sau đó viết một vài procs được lưu trữ và thực hiện một số bài kiểm tra thời gian, xem cái nào tốt nhất. Nếu bạn có sự gia tăng đáng kể chỉ trên các hoạt động cơ bản mà bạn đang thực hiện, thì đó chỉ là lý do chính đáng, nếu nó ngang bằng thì quyết định của bạn thực sự xoay quanh, chức năng mới mà bạn thực sự muốn đạt được.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thay đổi mật khẩu cho đăng nhập máy chủ SQL

  2. Cách tìm đối chiếu cơ sở dữ liệu được hỗ trợ bởi phiên bản máy chủ SQL của bạn

  3. Lệnh gọi không đồng bộ của một thủ tục được lưu trữ trên Máy chủ SQL trong C #

  4. Tìm xem có bao nhiêu hàng nghìn, hàng trăm và hàng chục

  5. Xử lý giá trị NULL trong UNPIVOT