我的功能在Internet Explorer中比灰尘慢,但在Firefox中速度很快。我正在使用select *因为它正在使用表中的所有内容。我尝试将*输出并列出所有列,但随后它因为我使用两个表而中断,我很好奇是否有人可以帮我解决这个问题。 (我正在使用MSSQL 2012)
<!--- Display Table for DataTables --->
<cffunction name="displayTable" access="public" returntype="query">
<cfset var processTable = ''>
<cfquery name="processTable">
SELECT *
FROM dbo.Dealer_Track_Work, dbo.Dealer_Track_Dealers
WHERE dbo.Dealer_Track_Work.dealerID = dbo.Dealer_Track_Dealers.id
</cfquery>
<cfreturn processTable>
</cffunction>
我尝试像这样调用两行中的所有列:
<!--- Display Table for DataTables --->
<cffunction name="displayTable" access="public" returntype="query">
<cfset var processTable = ''>
<cfquery name="processTable">
SELECT id, dealerID, Date_Received, op_id, Date_Due, Date_Complete, Completed_Late, Closed_by, Rmks, Processing_Location, Item_Count, Name
FROM dbo.Dealer_Track_Work, dbo.Dealer_Track_Dealers
WHERE dbo.Dealer_Track_Work.dealerID = dbo.Dealer_Track_Dealers.id
</cfquery>
<cfreturn processTable>
</cffunction>
答案 0 :(得分:5)
您确定SQL查询是问题吗?听起来,浏览器呈现结果的速度差异更可能是您的问题。使用SQL事件探查器或SSMS直接对数据库执行查询并查看统计信息。如果查询运行得很快,您需要将优化工作集中在其他地方。
关于SQL,为了在执行连接时指定列名,您需要完全限定列名或别名表。另外,由于更复杂的查询中的可读性,我建议不要使用隐式连接。
SELECT dtw.id,
dtw.dealerID,
dtw.Date_Received,
dtw.op_id,
dtw.Date_Due,
dtw.Date_Complete,
dtw.Completed_Late,
dtw.Closed_by,
dtw.Rmks,
dtw.Processing_Location,
dtw.Item_Count,
dtd.Name
FROM dbo.Dealer_Track_Work dtw
JOIN dbo.Dealer_Track_Dealers dtd ON dtw.dealerID = dtd.dealerID
答案 1 :(得分:4)
尝试选择id
或Rmks
是不明确的,因为两个表都有这样的列。如果您想查询它们,您应该完全符合条件,就像您在where
条款中所做的那样:
SELECT dbo.Dealer_Track_Dealers.id, -- Here!
dealerID,
Date_Received,
op_id,
Date_Due,
Date_Complete,
Completed_Late,
Closed_by,
dbo.Dealer_Track_Dealers.Rmks, -- And here
Processing_Location,
Item_Count,
Name
FROM dbo.Dealer_Track_Work, dbo.Dealer_Track_Dealers
WHERE dbo.Dealer_Track_Work.dealerID = dbo.Dealer_Track_Dealers.id
答案 2 :(得分:2)
除了已经说过的所有内容之外,还有一种方法可以让您的页面更快地呈现。我将描述这种方法。你可以尝试一下。
在ColdFusion中,使用<cfsavecontent>
将查询结果的显示代码存储到变量中。然后使用toScript()
将该CF变量转换为javascript变量。
在HTML中,在页面上放置一个空的<div>
容器。最后使用javascript用你创建的javascript变量替换div的内容。