The*_*tan 10 sql t-sql sql-server stored-procedures sql-server-2008
我在SQL Server 2008上运行的存储过程相当复杂(或者看起来很丑陋,取决于你如何看待).它基于pk表和fk表的视图基于很多逻辑.fk表与pk表连接的次数略多于30次(fk表的设计很差 - 它使用了我需要展平的名称值对.不幸的是,它是第三方而我无法改变它).
无论如何,它已经运行好几周,直到我定期发现需要3-5分钟的运行.事实证明,这是生成查询计划所需的时间.一旦查询计划存在并被缓存,存储过程本身就会非常有效地运行.事情顺利进行,直到有理由再次重新生成和缓存查询计划.
有没有人见过这个?为什么生成计划需要这么长时间?有没有办法让它更快地提出计划?