-1
我已經有一列iscurrent
一個表,值是0和1MERGE語句性能
我行插入該表與被插入或更新的基礎上,iscurrent
值MERGE語句。爲了性能調優,我在該表上創建了兩個分區,分別爲0和1。但表現還不夠好。
如何調整合並語句?每次它將成千上萬行合併到數百萬行。將分區表幫助嗎?
我已經有一列iscurrent
一個表,值是0和1MERGE語句性能
我行插入該表與被插入或更新的基礎上,iscurrent
值MERGE語句。爲了性能調優,我在該表上創建了兩個分區,分別爲0和1。但表現還不夠好。
如何調整合並語句?每次它將成千上萬行合併到數百萬行。將分區表幫助嗎?
如果您使用派生表作爲源,請首先調整該select語句,或者將派生表的結果放入具有適當索引的物理表中。
MERGE myTargetTabe as TargetTable
USING (derived table statement goes here) SourceTable on .......
MERGE語句將掃描每個符合你的「ON」子句中指定的標準,如果有你沒有需要合併行的行,然後在這裏排除行。例如:
MERGE myTargetTabe as TargetTable
USING (derived table statement goes here) SourceTable on TargetTable.ID = SourceTable.ID and TargetTable.OtherColumn NOT IN (....) and ...... or .... and so on.
你可以發表聲明嗎? 「MERGE」聲明中沒有固有的「緩慢」。這幾乎是一個內置的upsert。 – Matthew
所以基本上你會觸摸表中的每一行?無論是更新還是插入?你會很難從中獲得表現。 你能提供一個你的合併聲明的例子嗎? –
沒有足夠的信息來幫助這裏。您需要提供表結構,索引和正在運行的查詢以便開始。 – JNK