我们公司用的是SQL server,工厂每天通过线上客户端程序,有很多数据,主要数据往往集中在几个表中,这些表的数据都比较大。
而一些报表需要的是2个或者3个中几个字段的组合。
这就需要表连接,而前人给讲,避免用表连接,可能造成表锁,影响线上程序。
解决办法就是每个表中都记录加入常用的几个字段,这样就不用表连接了。
似乎听起来很合理,如果这样还要什么范式理论干吗?
求达人指教,表连接真的使SQL性能很差吗?
有什么解决之道么?

解决方案 »

  1.   

    就需要表连接,而前人给讲,避免用表连接,可能造成表锁,影响线上程序。 
    --如果是纯粹做查询用,是不会锁表的,你可以在表的后面加 WITH(NOLOCK),
    如:SELECT T1.*, T2.* FROM T1 WITH(NOLOCK), T2 WITH(NOLOCK)求达人指教,表连接真的使SQL性能很差吗? 
    有什么解决之道么?
    --性能好与坏,看你表的数据有多少了,查询的结果有多少,还有的数据库的负荷如何,通过索引等技术,我想一般来说,性能不会很差。
      

  2.   

    性能你可以在你的生产环境进行观察,尽量的优化你的SQL,然后看看性能是否满足要求。