在工作中开发新查询时,我编写了它并在SQL查询分析器中对其进行了分析.查询在没有任何表扫描的情况下表现非常好但是当我将其封装在存储过程中时,性能非常糟糕.当我查看执行计划时,我可以看到SQL Server选择了一个不同的计划,使用表扫描而不是TableB上的索引查找(我被迫混淆了表和列名,但没有查询逻辑已经改变).
这是查询
SELECT
DATEADD(dd, 0, DATEDIFF(dd, 0, TableA.Created)) AS Day,
DATEPART(hh, TableA.Created) AS [Hour],
SUM(TableB.Quantity) AS Quantity,
SUM(TableB.Amount) AS Amount
FROM
TableA
INNER JOIN TableB ON TableA.BID = TableB.ID
WHERE
(TableA.ShopId = @ShopId)
GROUP BY
DATEADD(dd, 0, DATEDIFF(dd, 0, TableA.Created)),
DATEPART(hh, TableA.Created)
ORDER BY
DATEPART(hh, TableA.Created)
Run Code Online (Sandbox Code Playgroud)
当我运行查询"raw"时,我得到以下跟踪统计信息
Event Class Duration CPU Reads Writes SQL:StmtCompleted 75 41 7 0
当我使用以下命令将查询作为存储过程运行时
DECLARE @ShopId int
SELECT @ShopId = 1
EXEC spStats_GetSalesStatsByHour @ShopId
Run Code Online (Sandbox Code Playgroud)
我得到以下跟踪统计数据
Event Class Duration CPU Reads Writes SQL:StmtCompleted 222 10 …
我正在尝试将树视图节点复制到treenodecollection以进行其他处理.当我执行treeview.nodes.clear()下一行时,我的treenodecollection变为null.您能告诉我如何将树视图节点复制到treenodecollection并保留节点的副本,即使在调用实际树视图节点的Clear方法之后也是如此?
TreeNodeCollection tnc = null;
private TypeIn()
{
tnc = treeView1.Nodes;
treeView1.Nodes.Clear();
//Now my tnc becomes null, but I want the tnc for future use.
}
Run Code Online (Sandbox Code Playgroud) 关于SQL中语句的执行顺序,以下性能是否有明显区别?
SELECT * FROM Persons
WHERE UserType = 'Manager' AND LastName IN ('Hansen','Pettersen')
Run Code Online (Sandbox Code Playgroud)
和:
SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen') AND UserType = 'Manager'
Run Code Online (Sandbox Code Playgroud)
如果有任何差异,是否可能有一个链接等,你可以在哪里可以了解更多相关信息?
万分感谢,
凯尔
如何在具有相同id属性的所有元素上应用jquery?
我想在具有相同ID 的元素上应用a focus()和blur()函数textarea?
我有一个相当复杂的连接的执行计划,它显示在一个表上执行索引查找,其中"实际行数"读数为~70,000,而实际上表中总共只有约600行(估计数量)行只有127).
请注意,所有统计信息都是最新的,查询的输入参数与编译proc时输入的参数完全相同.
为什么实际行数如此之高,"实际行数"的实际含义是什么?
我唯一的理论是,大量的行与嵌套循环有关,而且这个索引查找正在执行多次 - "实际行数"实际上代表了所有执行的总行数.如果是这种情况,估计的行数也意味着所有执行的总行数?
当添加在服务器上运行的表单时,将有两个表单与runat服务器,并发生另一个错误.有人可以给我一个想法.提前谢谢.
错误的细节如下.
必须将带有'TextBox'类型的控件'ctl00_TextBox1'放在带有runat = server的表单标记内.描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.Web.HttpException:类型为"TextBox"的控件"ctl00_TextBox1"必须放在带有runat = server的表单标记内.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[HttpException(0x80004005):类型'TextBox'的控件'ctl00_TextBox1'必须放在带有runat = server的表单标记内.]
System.Web.UI.Page.VerifyRenderingInServerForm(Control control)+2052287
System.Web.UI.WebControls .TextBox.AddAttributesToRender(HtmlTextWriter writer)+49
System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer)+17
System.Web.UI.WebControls.TextBox.Render(HtmlTextWriter writer)+17
System.Web.UI. Control.RenderControlInternal(HtmlTextWriter writer,ControlAdapter adapter)+25
System.Web.UI.Control.RenderControl(HtmlTextWriter writer,ControlAdapter adapter)+121
System.Web.UI.Control.RenderControl(HtmlTextWriter writer)+22
System.Web.UI .Control.RenderChildrenInternal(HtmlTextWriter writer,ICollection children)+199
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)+20
System.Web.UI.Control.Render(HtmlTextWriter writer)+7
System.Web.UI.Control .RenderControlInternal(HtmlTextWriter writer,ControlAdapter adapter)+25
System.Web.UI.Con trol.RenderControl(HtmlTextWriter writer,ControlAdapter adapter)+121
System.Web.UI.Control.RenderControl(HtmlTextWriter writer)+22
System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,ICollection children)+199
System.Web.UI .Control.RenderChildren(HtmlTextWriter writer)+20
System.Web.UI.Page.Render(HtmlTextWriter writer)+26
System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,ControlAdapter adapter)+25
System.Web.UI.Control .RenderControl(HtmlTextWriter writer,ControlAdapter adapter)+121
System.Web.UI.Control.RenderControl(HtmlTextWriter writer)+22
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)+2558版本信息:Microsoft .NET Framework版本:2.0.50727.1873; ASP.NET版本:2.0.50727.1433
我有一个疑问为什么我们应该使用临时表在临时表中有什么特殊的东西我们应该在哪里使用临时表.你能解释一下我或任何参考谢谢你.
我面临着一些我不知道从哪里开始的事情.
我目前在我的网站上有一个新闻栏目,新闻被添加到数据库中.但是,它非常沉闷,没有格式化!
如何允许管理员添加新闻以使事物变粗或加下划线并具有颜色等.是否可以像往常一样将其保存在数据库中.
对不起,如果这是一个非常愚蠢的问题,但这是我之前没有遇到的事情!
谢谢
为什么不Manipulate[]使用大数字?例如,这是有效的
Manipulate[k, {k, 0, 1000000000, 1}]
Run Code Online (Sandbox Code Playgroud)
而这不是
Manipulate[k, {k, 0, 10000000000, 1}]
Run Code Online (Sandbox Code Playgroud)
我相信应该有一些Mathematica变量影响这个,但我找不到一个.
我希望这个问题不是太明显……我已经找到了很多关于解释执行计划的好信息,但有一个问题我还没有找到答案。
计划(更具体地说是相对 CPU 成本)是仅基于模式还是基于数据库中当前的实际数据?
我试图对我的产品数据库中需要索引的位置进行一些分析,但我正在使用我自己的测试系统,该系统没有接近该领域产品所拥有的数据量。我看到一些奇怪的事情,比如在添加索引后估计 CPU 成本实际上略有上升,我想知道这是不是因为我的数据集太小了。
我正在使用 SQL Server 2005 和 Management Studio 来制定计划
sql ×4
sql-server ×3
t-sql ×2
asp.net ×1
c# ×1
html ×1
indexing ×1
jquery ×1
master-pages ×1
mysql ×1
optimization ×1
performance ×1
php ×1
temp-tables ×1