我试图通过Joins
尝试concatenate
具有各种相关Look-Up Table
值的说明字段来推动限制。例如:
这是记录1描述字段
爱好:篮球,硬石
最喜欢的食物:印度,法国
社交网站:Facebook,Twitter
我设置Select
Left Joins
来收集相关数据。我没有在这里发布它,因为这个问题看起来更高级别,如果需要,我可以这样做。
无论如何,我在一个select语句中遇到了61个Joins的限制,它告诉你有多少被查询和加入。我的主表是大约200万条记录,其他每条记录都在5万到1M之间。
当然,这需要很长时间。
所以我的问题是,按顺序执行此操作会更好吗?为了防止任何反对意见,是的,我可以测试它,但是需要大量的工作才能将其删除到几十个顺序选择中,我想确保在测试该解决方案之前我在正确的道路上。
因此,简单来说,在转换查询时会有性能提升:
Select Concat(T.Description,L1.Name,..,LN.Name) from Table T
LEFT Join LUT1 L1
On T.ID=L1.TableID
...
LEFT Join LUTN LN
On T.ID=LN.TableID
进入一系列连接,我将每个阶段存储到下一个阶段:
Insert into Temp (ID,NewDescription)
Select T.ID,Concat(T.Description,L1.Name) from Table T
LEFT Join LUT1 L1
On T.ID=L1.TableID
然后为其他LUT
s
Update Temp set Desricption =
Select Concat(T.Description,L.Name) from Temp T
LEFT Join LUTN LN
On T.ID=LN.TableID
看起来似乎是合乎逻辑的'对我来说,将2M记录表多次连接到单个100k记录表比同时在2M记录表和十几个或更多100k记录表之间进行连接更有效,但如上所述,这只是一个猜测,在没有得到实际了解这一事实的人的确认的情况下确认这一点在这一点上将是一项相当大的工作。希望这个问题在Stack上可接受的问题范围内。