SQL Server Compact查询运行约45分钟

SQL Server Compact查询运行约45分钟,sql,sql-server-ce,Sql,Sql Server Ce,现在我的把戏已经用光了 有人能告诉我我做错了什么吗?如果没有实际数据,我很难测试这段代码。。。但是试试这个: CREATE INDEX idxCustId ON tbl_customer(customer_id); 我基本上把内部连接放在第一位,并将WHERE子句作为连接的一部分。这只是几个技巧,你可以使用它来加速逻辑。这就成功了,但我不知道为什么这个是快的,而我的是慢的。如果你有时间的话,有什么解释吗?请看我在下面的编辑中的评论。简言之,您只是在更早地筛选数据,以使以后的工作“更少”。这可能

现在我的把戏已经用光了


有人能告诉我我做错了什么吗?

如果没有实际数据,我很难测试这段代码。。。但是试试这个:

CREATE INDEX idxCustId ON tbl_customer(customer_id);

我基本上把内部连接放在第一位,并将WHERE子句作为连接的一部分。这只是几个技巧,你可以使用它来加速逻辑。

这就成功了,但我不知道为什么这个是快的,而我的是慢的。如果你有时间的话,有什么解释吗?请看我在下面的编辑中的评论。简言之,您只是在更早地筛选数据,以使以后的工作“更少”。这可能是因为witch语句中的顺序是过程。但它们的执行计划应该是相同的!我建议阅读我的猜测是,这个新的querry有一个新的执行计划,它不是缓存等,所以它修复了问题而没有修复它;在列上应用索引可以解决一个问题,但是如果您只是尝试应用索引失败,而不了解您的实际操作,那么最终可能弊大于利。您不仅需要查看表的设计,还需要查看该表的使用是如何实现的。索引应该像手术刀一样使用,而不是像猎枪一样使用。为了扩展现有的答案,我很抱歉地告诉大家,它们中没有一个接近答案。将发生查询计划缓存,两者很快将具有相同的性能。事实上,问题查询和答案查询之间没有区别(除了日期间隔的打开和关闭/范围是另一个主题)。“唯一的区别”是缓存的计划。对于
选择,其中
可能具有相同的效果。关于sql的工作原理有一个深刻的误解。您好@rajeswan perumal,您应该尝试一个查询的解释计划,它应该让您对如何优化查询有更多的了解。欢迎来到这里,你的问题很好地阐述了。
CREATE INDEX idxCustId ON tbl_customer(customer_id);
SELECT tbl_sale.SALES_ID,
   tbl_sale.Sales_Date,
   tbl_sale.Sales_Time,
   tbl_users.user_name,
   tbl_sale.customer_id,
   tbl_customer.customer_name,
   tbl_sale.grand_disc,
   tbl_sale.collection_full,
   tbl_sale.term_of_payment,
   tbl_sale.consin1,
   tbl_sale.consin2,
   tbl_sale.narration,
   tbl_sale_details.item_id,
   tbl_item.item_name,
   tbl_sale_details.quantity,
   tbl_sale_details.cost,
   tbl_sale_details.price,
   tbl_sale_details.vat,
   tbl_sale_details.disc,
   tbl_sale_details.total_cost,
   tbl_sale_details.total_price,
   tbl_sale_details.sub_total
FROM tbl_customer
INNER JOIN tbl_sale        ON tbl_customer.customer_id = tbl_sale.customer_id 
                            and tbl_sale.Sales_Date between  '1/1/2018' and ' 08/22/2018'
INNER JOIN tbl_users        ON tbl_sale.User_ID = tbl_users.User_ID
INNER JOIN tbl_sale_details ON tbl_sale.SALES_ID = tbl_sale_details.SALES_ID
LEFT OUTER JOIN tbl_item ON tbl_item.item_id = tbl_sale_details.item_id