Cod*_*ome 0 sql t-sql casting join sql-server-2005
我正在使用SQL Server 2005.
我正在和我的一个朋友一起编写代码,仅举一个例子,我去了左侧的联接.
JOIN t on cast(a.foo as int) = b.foo
Run Code Online (Sandbox Code Playgroud)
他告诉我永远不要这样做,因为我失去了索引的所有性能优势.
你为什么要故意这样做?
嗯......答案就是你朋友所说的.如果你施放它,它将无法利用a.foo上的索引.但是如果你施放右侧,那么你将无法利用b.foo上的指数.
最后,如果您加入不匹配的数据类型,您将不得不在某处丢失.是否应该在连接的左侧或右侧完全取决于数据密度,以及所涉及的表上实际上有哪些索引(例如,如果a.foo未被索引,那么它真的不会花费很多).
归档时间: |
|
查看次数: |
1001 次 |
最近记录: |