Solved

Optimizing SQL Query

Posted on 2016-08-31
16
49 Views
Last Modified: 2016-09-02
I have the following SQL query which I need to optimize. Currently the execution time for this query is around 2 mins.
select top 1 o.ordernumber
from orders o with (Nolock)
inner join customer cu on cu.customerid=o.customerid
inner join orders_shoppingcart os1 on o.ordernumber=os1.ordernumber
inner join product p1 on p1.productid=os1.productid
where cu.sfdc_id='0037000001rcvxQAAQ'
and (p1.producttypeid = 1 or p1.producttypeid=7)
and (p1.name != 'General Fund'or p1.name != 'Corpus Fund')
--and o.transaction_source not like '%dedo'
and o.Order_Status!='cancelled'
order by o.createdon desc

Any help in this regard would be greatly appreciated,
Thanks,
Aditya
0
Comment
Question by:giveindia
  • 8
  • 4
  • 3
  • +1
16 Comments
 
LVL 46

Expert Comment

by:Vitor Montalvão
ID: 41778064
Can you post the respective Query Execution Plan, so we can check if some index is missing?
0
 
LVL 69

Expert Comment

by:Éric Moreau
ID: 41778075
because you are using INNER joins, have you tried to move conditions into the join:

select top 1 o.ordernumber 

from orders o with (Nolock)

inner join customer cu 
on cu.customerid=o.customerid
and cu.sfdc_id='0037000001rcvxQAAQ'

inner join orders_shoppingcart os1 
on o.ordernumber=os1.ordernumber 

inner join product p1 
on p1.productid=os1.productid 
and (p1.producttypeid = 1 or p1.producttypeid=7)
and (p1.name != 'General Fund'or p1.name != 'Corpus Fund') 

where o.Order_Status!='cancelled'
--and o.transaction_source not like '%dedo' 

order by o.createdon desc

Open in new window

0
 
LVL 46

Expert Comment

by:Vitor Montalvão
ID: 41778078
because you are using INNER joins, have you tried to move conditions into the join:
I'm not sure how that can help improve the performance. Can you share your thoughts about this one?
0
 
LVL 69

Expert Comment

by:Éric Moreau
ID: 41778094
I have seen scenarios where because the conditions were moved in the join itself, less rows were returned and processed. The execution plan was different.
0
 
LVL 46

Expert Comment

by:Vitor Montalvão
ID: 41778106
In which version?
SQL Server engine is intelligent enough to change internally the SQL statements to improve the performance.
Anyway, won't hurt to give it a try even I'm skeptic about this one would like to hear about the results.
0
 
LVL 69

Expert Comment

by:Éric Moreau
ID: 41778112
If not mistaken it was SQL 2008 R2
0
 
LVL 46

Expert Comment

by:Vitor Montalvão
ID: 41778116
I would believe better if it was MSSQL 2000 or previous versions :)
0
 
LVL 69

Expert Comment

by:ScottPletcher
ID: 41778147
You need these indexes present on those tables.  The index can have additional keys as the first key
column is as shown below.  The index can of course also include additional columns as long as it has at least the columns shown.

orders: first key: Order_Status  INCLUDE(s): customerid, ordernumber
customer: first key: sfdc_id  INCLUDE(s): customerid
orders_shoppingcart: first Key: ordernumber  INCLUDE(s): [none]
product: first key: producttypeid  INCLUDE(s): name, productid
0
NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

 

Author Comment

by:giveindia
ID: 41781334
by moving conditions in join as suggested by eric, was able to reduce query time from 2 min to around 1 min 56 sec.

Tried combining this with index creation as suggested by scott to check if i could shave off a bit more time. But by creating these indexes the query execution time increased to 2min 2 sec.

Pls can i get some suggestions on this
0
 
LVL 46

Expert Comment

by:Vitor Montalvão
ID: 41781354
by moving conditions in join as suggested by eric, was able to reduce query time from 2 min to around 1 min 56 sec.
Those 4 seconds difference might have to do with the buffer.

Pls can i get some suggestions on this
As my first comment request, can you post the respective Query Execution Plan?
0
 

Author Comment

by:giveindia
ID: 41781369
In case it helps, below is the script for creation of the indexes as suggested by scott:

CREATE NONCLUSTERED INDEX [IX_mdoallocation1] ON [dbo].[orders]
(
      [order_status] ASC
)
INCLUDE (       [Customerid],
      --[FirstName],
      [ordernumber]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

CREATE NONCLUSTERED INDEX [IX_mdoallocation2] ON [dbo].[customer]
(
      [sfdc_id] ASC
)
INCLUDE (       --[Customerid],
      --[FirstName],
      [customerid]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

CREATE NONCLUSTERED INDEX [IX_mdoallocation3] ON [dbo].[orders_shoppingcart]
(
      [ordernumber] ASC
)
--INCLUDE (       --[Customerid],
      --[FirstName],
      --[customerid])
       WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO

CREATE NONCLUSTERED INDEX [IX_mdoallocation4] ON [dbo].[product]
(
      [producttypeid] ASC
)
INCLUDE (       --[Customerid],
      [name],
      [productid])
       WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
GO
0
 
LVL 46

Expert Comment

by:Vitor Montalvão
ID: 41781373
No, doesn't help.
You can have a thousand indexes created but only the Query Execution Plan gives you the information which indexes are really being used.
0
 

Author Comment

by:giveindia
ID: 41781385
<ShowPlanXML xmlns="http://schemas.microsoft.com/sqlserver/2004/07/showplan" Version="1.2" Build="11.0.6020.0">
  <BatchSequence>
    <Batch>
      <Statements>
        <StmtSimple StatementText="select top 1 o.ordernumber &#xD;&#xA;&#xD;&#xA;from orders o with (Nolock)&#xD;&#xA;&#xD;&#xA;inner join customer cu &#xD;&#xA;on cu.customerid=o.customerid&#xD;&#xA;and cu.sfdc_id='0037000001rcvxQAAQ'&#xD;&#xA;&#xD;&#xA;inner join orders_shoppingcart os1 &#xD;&#xA;on o.ordernumber=os1.ordernumber &#xD;&#xA;&#xD;&#xA;inner join product p1 &#xD;&#xA;on p1.productid=os1.productid &#xD;&#xA;and (p1.producttypeid = 1 or p1.producttypeid=7)&#xD;&#xA;and (p1.name != 'General Fund'or p1.name != 'Corpus Fund') &#xD;&#xA;&#xD;&#xA;where o.Order_Status!='cancelled'&#xD;&#xA;and o.transaction_source not like '%dedo' &#xD;&#xA;&#xD;&#xA;order by o.createdon desc" StatementId="1" StatementCompId="2" StatementType="SELECT" RetrievedFromCache="true" StatementSubTreeCost="557.128" StatementEstRows="1" StatementOptmLevel="FULL" QueryHash="0x2866B41E2CE40202" QueryPlanHash="0x585D7845C42ADE9">
          <StatementSetOptions QUOTED_IDENTIFIER="true" ARITHABORT="true" CONCAT_NULL_YIELDS_NULL="true" ANSI_NULLS="true" ANSI_PADDING="true" ANSI_WARNINGS="true" NUMERIC_ROUNDABORT="false" />
          <QueryPlan DegreeOfParallelism="8" MemoryGrant="13696" CachedPlanSize="88" CompileTime="128" CompileCPU="128" CompileMemory="2024">
            <ThreadStat Branches="2" UsedThreads="9">
              <ThreadReservation NodeId="0" ReservedThreads="16" />
            </ThreadStat>
            <MissingIndexes>
              <MissingIndexGroup Impact="96.2979">
                <MissingIndex Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]">
                  <ColumnGroup Usage="INEQUALITY">
                    <Column Name="[Order_Status]" ColumnId="150" />
                  </ColumnGroup>
                  <ColumnGroup Usage="INCLUDE">
                    <Column Name="[OrderNumber]" ColumnId="1" />
                    <Column Name="[CustomerID]" ColumnId="8" />
                    <Column Name="[Transaction_Source]" ColumnId="143" />
                    <Column Name="[CreatedOn]" ColumnId="151" />
                  </ColumnGroup>
                </MissingIndex>
              </MissingIndexGroup>
              <MissingIndexGroup Impact="99.9898">
                <MissingIndex Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]">
                  <ColumnGroup Usage="EQUALITY">
                    <Column Name="[CustomerID]" ColumnId="8" />
                  </ColumnGroup>
                  <ColumnGroup Usage="INCLUDE">
                    <Column Name="[OrderNumber]" ColumnId="1" />
                    <Column Name="[Transaction_Source]" ColumnId="143" />
                    <Column Name="[Order_Status]" ColumnId="150" />
                    <Column Name="[CreatedOn]" ColumnId="151" />
                  </ColumnGroup>
                </MissingIndex>
              </MissingIndexGroup>
            </MissingIndexes>
            <MemoryGrantInfo SerialRequiredMemory="1536" SerialDesiredMemory="1968" RequiredMemory="13248" DesiredMemory="13696" RequestedMemory="13696" GrantWaitTime="0" GrantedMemory="13696" MaxUsedMemory="1864" />
            <OptimizerHardwareDependentProperties EstimatedAvailableMemoryGrant="78643" EstimatedPagesCached="39321" EstimatedAvailableDegreeOfParallelism="4" />
            <RelOp NodeId="0" PhysicalOp="Top" LogicalOp="Top" EstimateRows="1" EstimateIO="0" EstimateCPU="1e-007" AvgRowSize="11" EstimatedTotalSubtreeCost="557.128" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
              <OutputList>
                <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
              </OutputList>
              <RunTimeInformation>
                <RunTimeCountersPerThread Thread="0" ActualRows="1" ActualEndOfScans="1" ActualExecutions="1" />
              </RunTimeInformation>
              <Top RowCount="0" IsPercent="0" WithTies="0">
                <TopExpression>
                  <ScalarOperator ScalarString="(1)">
                    <Const ConstValue="(1)" />
                  </ScalarOperator>
                </TopExpression>
                <RelOp NodeId="1" PhysicalOp="Parallelism" LogicalOp="Gather Streams" EstimateRows="1" EstimateIO="0" EstimateCPU="0.0285229" AvgRowSize="19" EstimatedTotalSubtreeCost="557.128" Parallel="1" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                  <OutputList>
                    <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                    <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                  </OutputList>
                  <RunTimeInformation>
                    <RunTimeCountersPerThread Thread="0" ActualRows="1" ActualEndOfScans="0" ActualExecutions="1" />
                  </RunTimeInformation>
                  <Parallelism>
                    <OrderBy>
                      <OrderByColumn Ascending="0">
                        <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                      </OrderByColumn>
                    </OrderBy>
                    <RelOp NodeId="2" PhysicalOp="Nested Loops" LogicalOp="Inner Join" EstimateRows="1" EstimateIO="0" EstimateCPU="6.77962e-005" AvgRowSize="19" EstimatedTotalSubtreeCost="557.099" Parallel="1" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                      <OutputList>
                        <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                        <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                      </OutputList>
                      <RunTimeInformation>
                        <RunTimeCountersPerThread Thread="8" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                        <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                        <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                        <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                        <RunTimeCountersPerThread Thread="7" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                        <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                        <RunTimeCountersPerThread Thread="1" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                        <RunTimeCountersPerThread Thread="6" ActualRows="3" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                        <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                      </RunTimeInformation>
                      <NestedLoops Optimized="0" WithOrderedPrefetch="1">
                        <OuterReferences>
                          <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="ProductID" />
                          <ColumnReference Column="Expr1011" />
                        </OuterReferences>
                        <RelOp NodeId="4" PhysicalOp="Nested Loops" LogicalOp="Inner Join" EstimateRows="1" EstimateIO="0" EstimateCPU="6.77962e-005" AvgRowSize="23" EstimatedTotalSubtreeCost="557.093" Parallel="1" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                          <OutputList>
                            <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                            <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                            <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="ProductID" />
                          </OutputList>
                          <RunTimeInformation>
                            <RunTimeCountersPerThread Thread="8" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="7" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="1" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="6" ActualRows="3" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                          </RunTimeInformation>
                          <NestedLoops Optimized="0" WithOrderedPrefetch="1">
                            <OuterReferences>
                              <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="Order_Detail_ID" />
                              <ColumnReference Column="Expr1010" />
                            </OuterReferences>
                            <RelOp NodeId="6" PhysicalOp="Nested Loops" LogicalOp="Inner Join" EstimateRows="1" EstimateIO="0" EstimateCPU="6.77962e-005" AvgRowSize="23" EstimatedTotalSubtreeCost="557.086" Parallel="1" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                              <OutputList>
                                <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                                <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                                <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="Order_Detail_ID" />
                              </OutputList>
                              <RunTimeInformation>
                                <RunTimeCountersPerThread Thread="8" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="7" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="6" ActualRows="3" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="1" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                              </RunTimeInformation>
                              <NestedLoops Optimized="0" WithOrderedPrefetch="1">
                                <OuterReferences>
                                  <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                                  <ColumnReference Column="Expr1009" />
                                </OuterReferences>
                                <RelOp NodeId="8" PhysicalOp="Sort" LogicalOp="Sort" EstimateRows="1" EstimateIO="0.00281532" EstimateCPU="0.000128726" AvgRowSize="19" EstimatedTotalSubtreeCost="557.081" Parallel="1" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                                  <OutputList>
                                    <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                                    <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                                  </OutputList>
                                  <MemoryFractions Input="0.0740741" Output="1" />
                                  <RunTimeInformation>
                                    <RunTimeCountersPerThread Thread="8" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualRebinds="1" ActualRewinds="0" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRebinds="1" ActualRewinds="0" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRebinds="1" ActualRewinds="0" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRebinds="1" ActualRewinds="0" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRebinds="1" ActualRewinds="0" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="7" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualRebinds="1" ActualRewinds="0" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="1" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualRebinds="1" ActualRewinds="0" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="6" ActualRows="3" Batches="0" ActualExecutionMode="Row" ActualRebinds="1" ActualRewinds="0" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualRebinds="0" ActualRewinds="0" ActualEndOfScans="0" ActualExecutions="0" />
                                  </RunTimeInformation>
                                  <Sort Distinct="0">
                                    <OrderBy>
                                      <OrderByColumn Ascending="0">
                                        <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                                      </OrderByColumn>
                                    </OrderBy>
                                    <RelOp NodeId="9" PhysicalOp="Hash Match" LogicalOp="Inner Join" EstimateRows="47.6973" EstimateIO="0" EstimateCPU="9.25128" AvgRowSize="19" EstimatedTotalSubtreeCost="557.078" Parallel="1" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                                      <OutputList>
                                        <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                                        <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                                      </OutputList>
                                      <MemoryFractions Input="1" Output="0.925926" />
                                      <RunTimeInformation>
                                        <RunTimeCountersPerThread Thread="8" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                        <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                        <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                        <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                        <RunTimeCountersPerThread Thread="7" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                        <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                        <RunTimeCountersPerThread Thread="1" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                        <RunTimeCountersPerThread Thread="6" ActualRows="3" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                        <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                                      </RunTimeInformation>
                                      <Hash>
                                        <DefinedValues />
                                        <HashKeysBuild>
                                          <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Customer]" Alias="[cu]" Column="CustomerID" />
                                        </HashKeysBuild>
                                        <HashKeysProbe>
                                          <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CustomerID" />
                                        </HashKeysProbe>
                                        <ProbeResidual>
                                          <ScalarOperator ScalarString="[GI_RAW].[dbo].[Customer].[CustomerID] as [cu].[CustomerID]=[GI_RAW].[dbo].[Orders].[CustomerID] as [o].[CustomerID]">
                                            <Compare CompareOp="EQ">
                                              <ScalarOperator>
                                                <Identifier>
                                                  <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Customer]" Alias="[cu]" Column="CustomerID" />
                                                </Identifier>
                                              </ScalarOperator>
                                              <ScalarOperator>
                                                <Identifier>
                                                  <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CustomerID" />
                                                </Identifier>
                                              </ScalarOperator>
                                            </Compare>
                                          </ScalarOperator>
                                        </ProbeResidual>
                                        <RelOp NodeId="10" PhysicalOp="Bitmap" LogicalOp="Bitmap Create" EstimateRows="1" EstimateIO="0" EstimateCPU="0.0285019" AvgRowSize="11" EstimatedTotalSubtreeCost="0.031785" Parallel="1" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                                          <OutputList>
                                            <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Customer]" Alias="[cu]" Column="CustomerID" />
                                          </OutputList>
                                          <RunTimeInformation>
                                            <RunTimeCountersPerThread Thread="8" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="7" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="6" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="1" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                                          </RunTimeInformation>
                                          <Bitmap>
                                            <DefinedValues>
                                              <DefinedValue>
                                                <ColumnReference Column="Bitmap1008" />
                                              </DefinedValue>
                                            </DefinedValues>
                                            <HashKeys>
                                              <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Customer]" Alias="[cu]" Column="CustomerID" />
                                            </HashKeys>
                                            <RelOp NodeId="11" PhysicalOp="Parallelism" LogicalOp="Distribute Streams" EstimateRows="1" EstimateIO="0" EstimateCPU="0.0285019" AvgRowSize="11" EstimatedTotalSubtreeCost="0.031785" Parallel="1" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                                              <OutputList>
                                                <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Customer]" Alias="[cu]" Column="CustomerID" />
                                              </OutputList>
                                              <RunTimeInformation>
                                                <RunTimeCountersPerThread Thread="8" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                                <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                                <RunTimeCountersPerThread Thread="7" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                                <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                                <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                                <RunTimeCountersPerThread Thread="6" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                                <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                                <RunTimeCountersPerThread Thread="1" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="1" ActualExecutions="1" />
                                                <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                                              </RunTimeInformation>
                                              <Parallelism PartitioningType="Broadcast">
                                                <RelOp NodeId="12" PhysicalOp="Index Seek" LogicalOp="Index Seek" EstimateRows="1" EstimateIO="0.003125" EstimateCPU="0.0001581" AvgRowSize="11" EstimatedTotalSubtreeCost="0.0032831" TableCardinality="427909" Parallel="0" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                                                  <OutputList>
                                                    <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Customer]" Alias="[cu]" Column="CustomerID" />
                                                  </OutputList>
                                                  <RunTimeInformation>
                                                    <RunTimeCountersPerThread Thread="1" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="1" ActualExecutions="1" />
                                                    <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                                                  </RunTimeInformation>
                                                  <IndexScan Ordered="1" ScanDirection="FORWARD" ForcedIndex="0" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="RowStore">
                                                    <DefinedValues>
                                                      <DefinedValue>
                                                        <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Customer]" Alias="[cu]" Column="CustomerID" />
                                                      </DefinedValue>
                                                    </DefinedValues>
                                                    <Object Database="[GI_RAW]" Schema="[dbo]" Table="[Customer]" Index="[IX_Auto_8767]" Alias="[cu]" IndexKind="NonClustered" />
                                                    <SeekPredicates>
                                                      <SeekPredicateNew>
                                                        <SeekKeys>
                                                          <Prefix ScanType="EQ">
                                                            <RangeColumns>
                                                              <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Customer]" Alias="[cu]" Column="SFDC_ID" />
                                                            </RangeColumns>
                                                            <RangeExpressions>
                                                              <ScalarOperator ScalarString="N'0037000001rcvxQAAQ'">
                                                                <Const ConstValue="N'0037000001rcvxQAAQ'" />
                                                              </ScalarOperator>
                                                            </RangeExpressions>
                                                          </Prefix>
                                                        </SeekKeys>
                                                      </SeekPredicateNew>
                                                    </SeekPredicates>
                                                  </IndexScan>
                                                </RelOp>
                                              </Parallelism>
                                            </RelOp>
                                          </Bitmap>
                                        </RelOp>
                                        <RelOp NodeId="13" PhysicalOp="Clustered Index Scan" LogicalOp="Clustered Index Scan" EstimateRows="4.62935e+006" EstimateIO="544.673" EstimateCPU="1.38448" AvgRowSize="62" EstimatedTotalSubtreeCost="546.058" TableCardinality="5.03434e+006" Parallel="1" EstimateRebinds="0" EstimateRewinds="0" EstimatedExecutionMode="Row">
                                          <OutputList>
                                            <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                                            <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CustomerID" />
                                            <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                                          </OutputList>
                                          <RunTimeInformation>
                                            <RunTimeCountersPerThread Thread="8" ActualRows="3" Batches="0" ActualExecutionMode="Row" ActualRowsRead="630880" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="2" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualRowsRead="645552" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="7" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="612525" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="3" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualRowsRead="568283" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="5" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualRowsRead="668809" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="4" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualRowsRead="651982" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="6" ActualRows="4" Batches="0" ActualExecutionMode="Row" ActualRowsRead="647824" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="1" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="608486" ActualEndOfScans="1" ActualExecutions="1" />
                                            <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                                          </RunTimeInformation>
                                          <IndexScan Ordered="0" ForcedIndex="0" ForceScan="0" NoExpandHint="0">
                                            <DefinedValues>
                                              <DefinedValue>
                                                <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                                              </DefinedValue>
                                              <DefinedValue>
                                                <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CustomerID" />
                                              </DefinedValue>
                                              <DefinedValue>
                                                <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CreatedOn" />
                                              </DefinedValue>
                                            </DefinedValues>
                                            <Object Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Index="[PK_Orders]" Alias="[o]" IndexKind="Clustered" />
                                            <Predicate>
                                              <ScalarOperator ScalarString="[GI_RAW].[dbo].[Orders].[Order_Status] as [o].[Order_Status]&lt;&gt;N'cancelled' AND NOT [GI_RAW].[dbo].[Orders].[Transaction_Source] as [o].[Transaction_Source] like N'%dedo' AND PROBE([Bitmap1008],[GI_RAW].[dbo].[Orders].[CustomerID] as [o].[CustomerID],N'[IN ROW]')">
                                                <Logical Operation="AND">
                                                  <ScalarOperator>
                                                    <Logical Operation="AND">
                                                      <ScalarOperator>
                                                        <Compare CompareOp="NE">
                                                          <ScalarOperator>
                                                            <Identifier>
                                                              <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="Order_Status" />
                                                            </Identifier>
                                                          </ScalarOperator>
                                                          <ScalarOperator>
                                                            <Const ConstValue="N'cancelled'" />
                                                          </ScalarOperator>
                                                        </Compare>
                                                      </ScalarOperator>
                                                      <ScalarOperator>
                                                        <Logical Operation="NOT">
                                                          <ScalarOperator>
                                                            <Intrinsic FunctionName="like">
                                                              <ScalarOperator>
                                                                <Identifier>
                                                                  <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="Transaction_Source" />
                                                                </Identifier>
                                                              </ScalarOperator>
                                                              <ScalarOperator>
                                                                <Const ConstValue="N'%dedo'" />
                                                              </ScalarOperator>
                                                            </Intrinsic>
                                                          </ScalarOperator>
                                                        </Logical>
                                                      </ScalarOperator>
                                                    </Logical>
                                                  </ScalarOperator>
                                                  <ScalarOperator>
                                                    <Intrinsic FunctionName="PROBE">
                                                      <ScalarOperator>
                                                        <Identifier>
                                                          <ColumnReference Column="Bitmap1008" />
                                                        </Identifier>
                                                      </ScalarOperator>
                                                      <ScalarOperator>
                                                        <Identifier>
                                                          <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="CustomerID" />
                                                        </Identifier>
                                                      </ScalarOperator>
                                                      <ScalarOperator>
                                                        <Const ConstValue="N'[IN ROW]'" />
                                                      </ScalarOperator>
                                                    </Intrinsic>
                                                  </ScalarOperator>
                                                </Logical>
                                              </ScalarOperator>
                                            </Predicate>
                                          </IndexScan>
                                        </RelOp>
                                      </Hash>
                                    </RelOp>
                                  </Sort>
                                </RelOp>
                                <RelOp NodeId="15" PhysicalOp="Index Seek" LogicalOp="Index Seek" EstimateRows="1" EstimateIO="0.003125" EstimateCPU="0.000158496" AvgRowSize="11" EstimatedTotalSubtreeCost="0.00569027" TableCardinality="5.533e+006" Parallel="1" EstimateRebinds="1" EstimateRewinds="0" EstimatedExecutionMode="Row">
                                  <OutputList>
                                    <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="Order_Detail_ID" />
                                  </OutputList>
                                  <RunTimeInformation>
                                    <RunTimeCountersPerThread Thread="8" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualRowsRead="2" ActualEndOfScans="2" ActualExecutions="2" />
                                    <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="1" ActualExecutions="1" />
                                    <RunTimeCountersPerThread Thread="7" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="0" ActualExecutions="0" />
                                    <RunTimeCountersPerThread Thread="6" ActualRows="3" Batches="0" ActualExecutionMode="Row" ActualRowsRead="3" ActualEndOfScans="3" ActualExecutions="3" />
                                    <RunTimeCountersPerThread Thread="1" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="0" ActualExecutions="0" />
                                    <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                                  </RunTimeInformation>
                                  <IndexScan Ordered="1" ScanDirection="FORWARD" ForcedIndex="0" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="RowStore">
                                    <DefinedValues>
                                      <DefinedValue>
                                        <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="Order_Detail_ID" />
                                      </DefinedValue>
                                    </DefinedValues>
                                    <Object Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Index="[Idx_Order_Number]" Alias="[os1]" IndexKind="NonClustered" />
                                    <SeekPredicates>
                                      <SeekPredicateNew>
                                        <SeekKeys>
                                          <Prefix ScanType="EQ">
                                            <RangeColumns>
                                              <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="OrderNumber" />
                                            </RangeColumns>
                                            <RangeExpressions>
                                              <ScalarOperator ScalarString="[GI_RAW].[dbo].[Orders].[OrderNumber] as [o].[OrderNumber]">
                                                <Identifier>
                                                  <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders]" Alias="[o]" Column="OrderNumber" />
                                                </Identifier>
                                              </ScalarOperator>
                                            </RangeExpressions>
                                          </Prefix>
                                        </SeekKeys>
                                      </SeekPredicateNew>
                                    </SeekPredicates>
                                  </IndexScan>
                                </RelOp>
                              </NestedLoops>
                            </RelOp>
                            <RelOp NodeId="17" PhysicalOp="Clustered Index Seek" LogicalOp="Clustered Index Seek" EstimateRows="1" EstimateIO="0.003125" EstimateCPU="0.0001581" AvgRowSize="11" EstimatedTotalSubtreeCost="0.00651803" TableCardinality="5.533e+006" Parallel="1" EstimateRebinds="1" EstimateRewinds="0" EstimatedExecutionMode="Row">
                              <OutputList>
                                <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="ProductID" />
                              </OutputList>
                              <RunTimeInformation>
                                <RunTimeCountersPerThread Thread="8" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualRowsRead="2" ActualEndOfScans="0" ActualExecutions="2" />
                                <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="0" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="0" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="0" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="7" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="0" ActualExecutions="0" />
                                <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="0" ActualExecutions="1" />
                                <RunTimeCountersPerThread Thread="1" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="0" ActualExecutions="0" />
                                <RunTimeCountersPerThread Thread="6" ActualRows="3" Batches="0" ActualExecutionMode="Row" ActualRowsRead="3" ActualEndOfScans="0" ActualExecutions="3" />
                                <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                              </RunTimeInformation>
                              <IndexScan Lookup="1" Ordered="1" ScanDirection="FORWARD" ForcedIndex="0" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="RowStore">
                                <DefinedValues>
                                  <DefinedValue>
                                    <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="ProductID" />
                                  </DefinedValue>
                                </DefinedValues>
                                <Object Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Index="[PK_Orders_ShoppingCart]" Alias="[os1]" TableReferenceId="-1" IndexKind="Clustered" />
                                <SeekPredicates>
                                  <SeekPredicateNew>
                                    <SeekKeys>
                                      <Prefix ScanType="EQ">
                                        <RangeColumns>
                                          <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="Order_Detail_ID" />
                                        </RangeColumns>
                                        <RangeExpressions>
                                          <ScalarOperator ScalarString="[GI_RAW].[dbo].[Orders_ShoppingCart].[Order_Detail_ID] as [os1].[Order_Detail_ID]">
                                            <Identifier>
                                              <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="Order_Detail_ID" />
                                            </Identifier>
                                          </ScalarOperator>
                                        </RangeExpressions>
                                      </Prefix>
                                    </SeekKeys>
                                  </SeekPredicateNew>
                                </SeekPredicates>
                              </IndexScan>
                            </RelOp>
                          </NestedLoops>
                        </RelOp>
                        <RelOp NodeId="21" PhysicalOp="Index Seek" LogicalOp="Index Seek" EstimateRows="1" EstimateIO="0.003125" EstimateCPU="0.0001581" AvgRowSize="9" EstimatedTotalSubtreeCost="0.00639079" TableCardinality="11362" Parallel="1" EstimateRebinds="1" EstimateRewinds="0" EstimatedExecutionMode="Row">
                          <OutputList />
                          <RunTimeInformation>
                            <RunTimeCountersPerThread Thread="8" ActualRows="2" Batches="0" ActualExecutionMode="Row" ActualRowsRead="2" ActualEndOfScans="0" ActualExecutions="2" />
                            <RunTimeCountersPerThread Thread="2" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="0" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="5" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="0" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="4" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="0" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="7" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="0" ActualExecutions="0" />
                            <RunTimeCountersPerThread Thread="3" ActualRows="1" Batches="0" ActualExecutionMode="Row" ActualRowsRead="1" ActualEndOfScans="0" ActualExecutions="1" />
                            <RunTimeCountersPerThread Thread="1" ActualRows="0" Batches="0" ActualExecutionMode="Row" ActualEndOfScans="0" ActualExecutions="0" />
                            <RunTimeCountersPerThread Thread="6" ActualRows="3" Batches="0" ActualExecutionMode="Row" ActualRowsRead="3" ActualEndOfScans="0" ActualExecutions="3" />
                            <RunTimeCountersPerThread Thread="0" ActualRows="0" ActualEndOfScans="0" ActualExecutions="0" />
                          </RunTimeInformation>
                          <IndexScan Ordered="1" ScanDirection="FORWARD" ForcedIndex="0" ForceSeek="0" ForceScan="0" NoExpandHint="0" Storage="RowStore">
                            <DefinedValues />
                            <Object Database="[GI_RAW]" Schema="[dbo]" Table="[Product]" Index="[Idx_ProductTypeID]" Alias="[p1]" IndexKind="NonClustered" />
                            <SeekPredicates>
                              <SeekPredicateNew>
                                <SeekKeys>
                                  <Prefix ScanType="EQ">
                                    <RangeColumns>
                                      <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Product]" Alias="[p1]" Column="ProductTypeID" />
                                      <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Product]" Alias="[p1]" Column="ProductID" />
                                    </RangeColumns>
                                    <RangeExpressions>
                                      <ScalarOperator ScalarString="(1)">
                                        <Const ConstValue="(1)" />
                                      </ScalarOperator>
                                      <ScalarOperator ScalarString="[GI_RAW].[dbo].[Orders_ShoppingCart].[ProductID] as [os1].[ProductID]">
                                        <Identifier>
                                          <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="ProductID" />
                                        </Identifier>
                                      </ScalarOperator>
                                    </RangeExpressions>
                                  </Prefix>
                                </SeekKeys>
                              </SeekPredicateNew>
                              <SeekPredicateNew>
                                <SeekKeys>
                                  <Prefix ScanType="EQ">
                                    <RangeColumns>
                                      <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Product]" Alias="[p1]" Column="ProductTypeID" />
                                      <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Product]" Alias="[p1]" Column="ProductID" />
                                    </RangeColumns>
                                    <RangeExpressions>
                                      <ScalarOperator ScalarString="(7)">
                                        <Const ConstValue="(7)" />
                                      </ScalarOperator>
                                      <ScalarOperator ScalarString="[GI_RAW].[dbo].[Orders_ShoppingCart].[ProductID] as [os1].[ProductID]">
                                        <Identifier>
                                          <ColumnReference Database="[GI_RAW]" Schema="[dbo]" Table="[Orders_ShoppingCart]" Alias="[os1]" Column="ProductID" />
                                        </Identifier>
                                      </ScalarOperator>
                                    </RangeExpressions>
                                  </Prefix>
                                </SeekKeys>
                              </SeekPredicateNew>
                            </SeekPredicates>
                          </IndexScan>
                        </RelOp>
                      </NestedLoops>
                    </RelOp>
                  </Parallelism>
                </RelOp>
              </Top>
            </RelOp>
          </QueryPlan>
        </StmtSimple>
      </Statements>
    </Batch>
  </BatchSequence>
</ShowPlanXML>
0
 
LVL 46

Accepted Solution

by:
Vitor Montalvão earned 500 total points
ID: 41781401
Thanks. You can also add a file instead of copy an paste all the text in the sqlplan.

Anyway, I can see that is complaining about the following missing index that will improve your query in more than 96%:
/*
Missing Index Details from sqlplan.sqlplan
The Query Processor estimates that implementing the following index could improve the query cost by 96.2979%.
*/

USE [GI_RAW]
GO
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[Orders] ([Order_Status])
INCLUDE ([OrderNumber],[CustomerID],[Transaction_Source],[CreatedOn])
GO

Open in new window

0
 

Author Comment

by:giveindia
ID: 41781421
hey vitor. This is really great. The execution time of the query actually reduced to 2sec. Just a question, does creating lot of indexes hinder performance in any way like in insert, update or delete( just out of curiosity)
0
 
LVL 46

Expert Comment

by:Vitor Montalvão
ID: 41781424
Bad side of the indexes is really when an insert happens since the engine needs to create the record in the table and also the index reference but unless you're having a massive insert process a single insert will be neglected.
But indexes are good to speed up Updates and Deletes since usually those commands are using the WHERE clause to find the records to be affected.
0

Featured Post

PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How to upload /Create/manage SQL database on Azure 3 30
Export import database 4 41
SQL - SP needs a little help 9 19
MS SQL Pivot table help 4 5
Load balancing is the method of dividing the total amount of work performed by one computer between two or more computers. Its aim is to get more work done in the same amount of time, ensuring that all the users get served faster.
For both online and offline retail, the cross-channel business is the most recent pattern in the B2C trade space.
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed
Via a live example, show how to extract insert data into a SQL Server database table using the Import/Export option and Bulk Insert.

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now