join-hints

    2熱度

    4回答

    一位同事要求我查看某些表格的索引,因爲他的查詢運行時間很長。一個多小時。 select count(1) from databaseA.dbo.table1 inner join databaseA.dbo.table2 on (table1.key = table2.key) inner join databaseB.dbo.table3 on (table1.key = table3.k

    23熱度

    2回答

    今天我在SQL Server中學到了一個叫做INNER LOOP JOIN的東西。 這是什麼意思? (谷歌沒有幫助..或者我應該說...有關它的博客文章有點......技術,並且正在讓我感到頭疼)。 此外,什麼是一些常見的情況下,使用INNER LOOP JOIN比標準INNER JOIN好主意?

    11熱度

    1回答

    我不清楚下面提到的查詢之間的工作差異。 具體而言,我不清楚OPTION(LOOP JOIN)的概念。 1的方法:這是一個傳統的連接使用,這是比所有的低於最昂貴的。 SELECT * FROM [Item Detail] a LEFT JOIN [Order Detail] b ON a.[ItemId] = b.[fkItemId] OPTION (FORCE ORDER); 第二個辦法:

    11熱度

    5回答

    在常規的JOIN中顯式地進行HASH JOIN(其中SQL Server將決定最佳的JOIN策略)有什麼優點?例如: select pd.* from profiledata pd inner hash join profiledatavalue val on val.profiledataid=pd.id 在上面的簡單示例代碼中,我指定的連接策略,而如果我離開掀起的「哈希」鍵字SQL S

    0熱度

    1回答

    我怎麼知道在哪裏使用哈希提示明確加入?有時查詢優化器會被欺騙並應用有時會影響性能的提示?

    0熱度

    1回答

    我們在我們的系統中有一個查詢,它在使用的邏輯讀取量方面存在問題。查詢經常運行(每天幾次),但它本質上是報告(即收集數據,它不是事務性的)。 有幾個人看後,我們正在考慮一些不同的選擇。 使用OPTION(FORCE ORDER)和幾個合併聯接提示,讓優化更有效地處理數據(至少在已經測試的數據)。 使用臨時表來分解查詢,以便優化器不處理一個非常大的查詢,它可以更有效地處理它。 我們實際上沒有選擇進行大

    1熱度

    2回答

    我對此很困惑。我無法提供一個示例,因爲最終的SQL語句是動態構建的,並且很多函數和過程在此扮演角色... 通常,我有五個聯接。我注意到,當我刪除其中的一個時,語句執行0秒,否則執行超過4分鐘。然後,我看看實際的執行計劃,並注意到「合併連接」需要很多成本。在Google中搜索使用「OPTION(MERGE JOIN)」和聲明結尾給我留下「INNER MERGE JOIN」。 這真的很好,因爲查詢現在

    0熱度

    1回答

    我有一些臨時報告用戶擊中一些SQL Server視圖。這些用戶爲了特別冗長的查詢偶爾會讀取鎖,導致系統中其他地方出現問題。 我正在考慮在視圖中添加一些策略with(nolock)提示,但想知道是否有任何與視圖提示相關的陷阱。 請讓用戶將查詢運行到接近SQL金屬的位置,以避免出現明顯的問題:)。 此外,我知道nolock提示是一個高級功能,不要輕易使用,我很清楚它們會引入有趣的東西,如髒讀。最後,如

    12熱度

    2回答

    我的google-fu和so-fu在這裏失敗了,所以我不妨問一下。 我有很多查詢與他們中的多個聯接。 在一個查詢中,我將標題/項目/細節連接在一起,並查找這些記錄的各種信息位。 加入時,我儘量保持它們的相關性。例如:我的標題有兩個查找表,所以在加入我的物品表之前,我會加入這些表。 這是正確的嗎? 在查找表之前加入較大的表是否更好?或相反亦然? 我應該在加入到小型表格時使用loop提示,並且在加入o

    3熱度

    2回答

    最近,我試圖優化這個查詢 UPDATE Analytics SET UserID = x.UserID FROM Analytics z INNER JOIN UserDetail x ON x.UserGUID = z.UserGUID 估計的執行計劃顯示在一個哈希匹配(聚合)上表更新57%和40%。我做了一些窺探,並找到了JOIN提示的主題。所以我給我的內部連接和WA-ZHAM添加了