只占用您二分鐘時間。。。感謝。。
create table test
(
id int not null,
create_datetime datetime not null,
create_year AS (datepart(year,create_datetime)) PERSISTED,
);
create index ix_test____create_year on dbo.test
(
create_year asc
);
insert into test values('2020-6-4'),('2020-6-8'),('2020-12-31'),('2021-5-8');
-- 以上表在列 create_datetime 上應用了按年劃分的磁區函式
-- 現在要求查詢 2020 年的所有資料 請問以下哪種查詢陳述句可以充分利用磁區表的優勢 還是說下面我寫的都不正確,感謝。。。感謝。。。
-- select * from test where year(create_datetime)=2020;
-- select * from test where create_year=2020;
uj5u.com熱心網友回復:
select * from test where create_year=2020
uj5u.com熱心網友回復:
感謝版主回復,我對磁區表了解的太少,您給出的這個,不在磁區列上進行查詢 這樣不會命中資料所在的磁區吧? 這樣會不會不是很高效?
uj5u.com熱心網友回復:
一般來講, 應避免一次讀一整年的資料, 且拿全部欄位. 這么大的資料量到前端是不合適的.uj5u.com熱心網友回復:
感謝版主,我這個問題提問的方法有問題,我重新開了一個貼子,麻煩看下 多謝
https://bbs.csdn.net/topics/396806532
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/26194.html
標籤:基礎類
