আমার একটি এসকিউএল সার্ভার ২০০ R আর 2 এক্সপ্রেস ডাটাবেসে প্রায় 75 মিলিয়ন রেকর্ড রয়েছে। প্রত্যেকটি একটি মানের সাথে সামঞ্জস্যপূর্ণ দীর্ঘতর। সারণীতে ভূগোলের কলাম রয়েছে। আমি একটি প্রদত্ত অক্ষাংশ দ্রাঘিমাংশ (বিন্দু) এর জন্য নিকটতম প্রতিবেশী সন্ধানের চেষ্টা করছি। আমার কাছে ইতিমধ্যে স্থানিক সূচক সহ একটি প্রশ্ন রয়েছে। তবে ডেটাবেজে রেকর্ডটি কোথায় আছে তার উপর নির্ভর করে, প্রথম ত্রৈমাসিক বা শেষ প্রান্তিকে বলুন, কোয়েরিটি নিকটবর্তী প্রতিবেশীটিকে খুঁজে পেতে 3 থেকে 30 সেকেন্ড সময় নিতে পারে। আমি মনে করি এটি ক্যোয়ারী বা স্পেসিয়াল ইনডেক্সকে অনুকূল করে অনেক দ্রুত ফলাফল দিতে অনুকূলিত হতে পারে। এখনই ডিফল্ট সেটিংস সহ কিছু স্থানিক সূচক প্রয়োগ করেছে applied আমার টেবিল এবং ক্যোয়ারীর মতো দেখতে এখানে।
CREATE TABLE lidar(
[id] [bigint] IDENTITY(1,1) NOT NULL,
[POINTID] [int] NOT NULL,
[GRID_CODE] [numeric](17, 8) NULL,
[geom] [geography] NULL,
CONSTRAINT [PK_lidar_1] PRIMARY KEY CLUSTERED ([id] ASC)
WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
স্থানিক সূচকটি আমি ব্যবহার করছি:
CREATE SPATIAL INDEX [SPATIAL_lidar] ON [dbo].[lidar] ([geom]) USING GEOGRAPHY_GRID
WITH (
GRIDS =(LEVEL_1 = MEDIUM,LEVEL_2 = MEDIUM,LEVEL_3 = MEDIUM,LEVEL_4 = MEDIUM),
CELLS_PER_OBJECT = 16, PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
আমি যে প্রশ্নগুলি ব্যবহার করছি তা এখানে:
declare @ms_at geography = 'POINT (-95.66 30.04)';
select TOP(1) nearPoints.geom.STAsText()as latlon
from
(
select r.geom
from lidar r With(Index(SPATIAL_lidar))
where r.geom.STIntersects(@ms_at.STBuffer(1000)) = 1
) nearPoints
আমার ডাটাবেসে ল্যাট ল্যাংসের একটি নমুনা এখানে। নির্ভুলতা এবং ঘনত্ব সম্পর্কে ধারণা দেওয়া। সমস্ত 70 মিলিয়ন রেকর্ড একটি শহরের জন্য (লিডার ডেটা)।
POINT (-95.669434934023087 30.049513838913736)
এখন এই কোয়েরিটি আমাকে উপরে বর্ণিত ফলাফল হিসাবে ফলাফল দেয় তবে আমি যতটা সম্ভব পারফরম্যান্সটি উন্নত করতে চাই। পারফরম্যান্সকে আরও ভাল করতে অপেক্ষাকৃত স্থানের সূচকটির ডিফল্ট মানগুলি টিক দিয়ে আমার ধারণা। এ সম্পর্কে কোন সূত্র?
আমি বাফারটি 10 থেকে 1000 এর মধ্যে পরিবর্তনের চেষ্টা করেছি তবে প্রায় একই ফলাফলের সাথে।
এছাড়াও পারফরম্যান্স উন্নয়নের জন্য অন্য কোনও পরামর্শ স্বাগত।
আমি এখনই সিস্টেমটি ব্যবহার করছি:
Windows 7 64bit Professional
Intel(R) Core(TM)2 Quad CPU Q9650 @ 3.00GHz (4 CPUs), ~3.0GHz
Ram: 8 GB
NVIDIA GeForce 9500 GT
lidar
ট্যাগ যুক্ত বিবেচনা করুন ।