Sql 选择查询造成的永久性损坏?

Sql 选择查询造成的永久性损坏?,sql,sql-server,sql-server-2008,tsql,select,Sql,Sql Server,Sql Server 2008,Tsql,Select,我想执行一些SELECT语句以从应用程序数据库(生产环境,而不是测试)中获取一些数据,是否会造成任何永久性损坏 我听说不建议使用SELECT*,因为它会减慢速度等。但我认为从长远来看,没有什么会受到影响?它是否会以某种方式损害应用程序用户的应用程序性能超过几秒钟呢?您不可能真正造成永久性损害。失控查询可能会阻止其他人访问数据库,因为它会占用资源。它还可以填充所有用户共享的临时空间 但是,要完成这些事情,您必须有相当复杂的查询。仅仅放置select*是一个执行良好的查询,不会导致此类问题 你应该考

我想执行一些SELECT语句以从应用程序数据库(生产环境,而不是测试)中获取一些数据,是否会造成任何永久性损坏

我听说不建议使用SELECT*,因为它会减慢速度等。但我认为从长远来看,没有什么会受到影响?它是否会以某种方式损害应用程序用户的应用程序性能超过几秒钟呢?

您不可能真正造成永久性损害。失控查询可能会阻止其他人访问数据库,因为它会占用资源。它还可以填充所有用户共享的临时空间

但是,要完成这些事情,您必须有相当复杂的查询。仅仅放置
select*
是一个执行良好的查询,不会导致此类问题


你应该考虑两件事。首先,了解执行计划,以便了解数据库的实际工作方式以及每个查询的执行方式。第二,要求一个包含样本数据的较小数据库,这样您就可以随意使用,并减少干扰他人的机会。

选择可能会降低系统的速度,某些类型的复杂查询可能会导致数据缓存在TempDB中,因此TempDB可能会增长。虽然SELECT通常不会损坏系统,但它仍然会造成性能不平衡,这取决于DB系统的重要性以及您将要做的事情。SELECT*不会造成自动降级,这是一种在生产工作中最好避免的糟糕做法,使用它快速查看记录并不是什么大不了的事情。另一个可能出错的事情是记录被锁定在编辑模式,据我所知,其他一些开发人员告诉我,虽然我没有看到,但你所写的这种减速和性能失衡是暂时的,对吗?所以,只有使TempDB增长的真正复杂的SELECT查询才能永久性地降低速度?您不需要复杂的东西来消耗服务器资源。例如,只需交叉连接一对相当大的表。SELLECT*可能包含不相关的列,这意味着数据传输可能需要一些额外的时间。就这样!没什么好担心的。