関数 :
create function .[data_by_date_district](@rev_datetime datetime)
returns table
as
return
(
SELECT 
     ro.Region,[DATETIME],     
      sum(datain) 'datain',
      sum(dataout) 'dataout'
  FROM 
 data.inoutdata cr 
 join 
 structure.site ro  on
 ro.site = substring(replace([siteunqid],'**',''),1,LEN(siteunqid)-1)
 where  [DATETIME]  =@rev_datetime
 group by Region,[DATETIME]
);
この関数を任意の日付で実行すると、00:00:00 になります。
これを別のテーブルに結合すると、4秒かかります(このテーブルは75行です):
SELECT 
     Region,[DATETIME],datain,dataout,(cr.datain+cr.dataout) 'total',SP_GEOMETRY,MI_STYLE,MI_PRINX
  FROM 
  data.data_by_date_district(DATEADD(DAY,-1,cast(GETDATE() as DATE)) ) cr
  join 
  datamap.VectorMaps.REGION_BND db
  on db.Name =  cr.Region
最初のテーブルには 1,700,000 行のデータがあり、毎日 170,000 ずつ増加しますが、他のテーブルには 75 行しかありません。クエリ時間を短縮する方法はありますか? 関数の結果は 75 行です。