Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Optimizing SQL Query

Posted on 2016-08-31
16
Medium Priority
?
84 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 4
  • 3
  • +1
16 Comments
 
LVL 52

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 70

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 52

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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 70

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 52

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 70

Expert Comment

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

Expert Comment

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

Expert Comment

by:Scott Pletcher
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
 

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 52

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 52

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 52

Accepted Solution

by:
Vitor Montalvão earned 2000 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 52

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

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

Recently we ran in to an issue while running some SQL jobs where we were trying to process the cubes.  We got an error saying failure stating 'NT SERVICE\SQLSERVERAGENT does not have access to Analysis Services. So this is a way to automate that wit…
One of the most important things in an application is the query performance. This article intends to give you good tips to improve the performance of your queries.
Via a live example, show how to backup a database, simulate a failure backup the tail of the database transaction log and perform the restore.
Using examples as well as descriptions, and references to Books Online, show the documentation available for datatypes, explain the available data types and show how data can be passed into and out of variables.

618 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