Ich habe eine temporäre Tabelle in einer gespeicherten Prozedur erstellt und indiziert sowie eine temporäre Variable Tabelle erstellt und indiziert. Ich finde die Tempentabelle schneller. Bitte beachten Sie meine Implementierung unten. Könnte mir jemand sagen, ob es einen Unterschied zwischen der Art und Weise ist i Indizestemporäre Tabelle vs temporäre Tabelle Variable Indizierung
Temptabelle Implementierung
if object_id('tempdb..#maxPeriod') is not null drop table #maxPeriod else
select
fp.companyId,
max(fi.periodenddate) as maxPeriod
into #maxPeriod
from ciqfinperiod fp inner join ciqcompany ci on fp.companyId = ci.companyId
join ciqfininstance fi on fi.financialperiodid = fp.financialperiodid
where fp.periodtypeid = 4
and fi.periodenddate > @date
and fi.latestforfinancialperiodflag = 1
and latestfilingforinstanceflag = 1
group by fp.companyId
CREATE NONCLUSTERED INDEX IDX_companyId2 on #maxPeriod(companyId,maxPeriod)
temporäre Tabelle variable Implementierung angewandt haben
DECLARE @maxPeriod TABLE (companyId INT, maxPeriod smalldatetime,
UNIQUE NONCLUSTERED (companyId, maxPeriod))
INSERT INTO @maxPeriod
select
fp.companyId,
max(fi.periodenddate) as maxPeriod
from ciqfinperiod fp inner join ciqcompany ci on fp.companyId = ci.companyId
join ciqfininstance fi on fi.financialperiodid = fp.financialperiodid
where fp.periodtypeid = 4
and fi.periodenddate > @date
and fi.latestforfinancialperiodflag = 1
and latestfilingforinstanceflag = 1
group by fp.companyId
Letzteres hat eine UNIQUE-Einschränkung die ehemalige nicht .. –
Wie verwende ich nicht geclusterten Index nur auf temporäre Tabellenvariablen – Tom
Ich finde die ehemalige schneller als die letztere derzeit – Tom