এসকিউএল সার্ভার 2014 স্ট্যান্ডার্ড সংস্করণ
নির্দিষ্ট মাসগুলিতে নির্দিষ্ট শহরে এবং যে কয়েকটি ফ্লাইট রয়েছে সেগুলি আমার খুঁজে পাওয়া দরকার। যেমন
select count(*)
from flights
where flightTo_AirportCode = 'aaaa'
and flightFrom_Airportcode = 'bbbb'
and flightdate < '2016-04-01'
and flightdate > '2016-02-28' ;
টেবিলের স্কিমা নীচে।
আমি অনুমান করার চেষ্টা করছি যে সূচী মডেলএ বা সূচকের মডেলবি (নীচে) অগ্রাধিকারযোগ্য কিনা (সূচকটি তৈরি করতে অনেক ঘন্টা সময় লাগে, এবং ডিস্কের স্পেস একসাথে কেবলমাত্র একটিতে উপস্থিত হতে পারে, তাই আমি লাফ দেওয়ার আগে দেখার চেষ্টা করছি)।
আমার অভিজ্ঞতা থেকে, হয় সূচকটি করবে। আমি কি সঠিক?
create index [modelA] on flights (flightTo_AirportCode, flightFrom_AirportCode, flightDate)
create index [modelB] on flights (flightDate, flightTo_AirportCode, flightFrom_AirportCode)
(বা আরও ভাল, আমি এখানে পৌঁছানোর জন্য কোনও বাইনারি সূচক বা উন্নত পদ্ধতি ব্যবহার করতে পারি?)
CREATE TABLE [dbo].[flights](
[flightId] [uniqueidentifier] NOT NULL,
[accountId] [uniqueidentifier] NULL,
[flightDate] [datetime] NULL,
[flightTo_AirportCode] [nvarchar](30) NULL,
[flightFrom_AirportCode] [nvarchar](30) NULL,
-- ... 45 more fields
CONSTRAINT [PK_flight] PRIMARY KEY CLUSTERED
(
[flightId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 70) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]