亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQLServer查詢的最大大???在條款中?有沒有更好的方法

SQLServer查詢的最大大小?在條款中?有沒有更好的方法

白衣非少年 2019-10-28 20:16:55
SQLServer查詢的最大大???在條款中?有沒有更好的方法SQLServer查詢的最大大小是多少?(字符的#)IN條款的最大尺寸?我想我看到了甲骨文的1000項限制,但是你可以和Anding 2 in一起解決這個問題。SQL Server中類似的問題?更新那么,如果我需要從另一個系統(非關系數據庫)獲取1000個GUID并針對SQL Server執行“連接代碼”,那么最好的方法是什么?是將1000GUID的列表提交給IN子句呢?還是有另一種更有效的技術?我還沒有對此進行測試,但我想知道是否可以將GUID作為XML文檔提交。例如<guids>     <guid>809674df-1c22-46eb-bf9a-33dc78beb44a</guid>     <guid>257f537f-9c6b-4f14-a90c-ee613b4287f3</guid></guids>然后對Doc和Table執行某種XQuery連接。低于1000項條款的效率?
查看完整描述

3 回答

?
慕森王

TA貢獻1777條經驗 獲得超3個贊

每個SQL批處理都必須符合批次尺寸限制*65 536*網絡數據包大小。

除此之外,您的查詢還受到運行時條件的限制。它通常會耗盡堆棧大小,因為x IN(a,b,c)只是x=a OR x=b OR x=c,它創建了一個類似于x=a OR(x=b OR(x=c)的表達式樹,因此它與大量OR的關系變得非常深入。SQL 7將命中SO。在IN中的大約10k值,但是現在的堆棧要深得多(因為x64),所以它可以很深。

更新

您已經找到Erland關于將列表/數組傳遞給SQLServer的文章。在SQL 2008中,您還擁有表值參數它允許您將整個DataTable作為單個表類型參數傳遞并在其上聯接。

XML和XPath是另一個可行的解決方案:

SELECT ...FROM TableJOIN (
   SELECT x.value(N'.',N'uniqueidentifier') as guid   FROM @values.nodes(N'/guids/guid') t(x)) as guids ON Table.guid = guids.guid;



查看完整回答
反對 回復 2019-10-29
  • 3 回答
  • 0 關注
  • 457 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號