Sql server 普通选择查询需要更多时间

Sql server 普通选择查询需要更多时间,sql-server,Sql Server,我今天参加了一次面试。面试官问我有一张桌子叫“研究”。此表只有10条记录 现在当我查询表时 从研究中选择* 大约需要20秒的时间 原因可能是什么 我无法想象,如果一个表只有10条记录,它会花费这么多时间。这可能有很多原因: 一方面,只有10条记录可能有点误导:如果这些记录中的每一条都有几个nvarcharmax列,这可能需要一些时间。此外,如果表有大约100列,这也需要更长的时间。其他方面可能是计算成员等。最后但并非最不重要的一点是,如果您通过VPN启动查询,这将大大降低速度 这意味着:如果你能

我今天参加了一次面试。面试官问我有一张桌子叫“研究”。此表只有10条记录

现在当我查询表时 从研究中选择* 大约需要20秒的时间

原因可能是什么


我无法想象,如果一个表只有10条记录,它会花费这么多时间。

这可能有很多原因:

一方面,只有10条记录可能有点误导:如果这些记录中的每一条都有几个nvarcharmax列,这可能需要一些时间。此外,如果表有大约100列,这也需要更长的时间。其他方面可能是计算成员等。最后但并非最不重要的一点是,如果您通过VPN启动查询,这将大大降低速度


这意味着:如果你能提供更多关于结构、内容、服务器、连接等方面的信息,这将有助于缩小你的问题范围。

这个问题有点模糊,取决于他们招聘的对象,不是一个好问题。我猜这个问题是想试探你,看看在这种情况下你会怎么做。像这样非常具体的问题往往来自他们亲身经历的问题。有很多因素会导致这种情况。我会问,一直都是这样吗?其他表是否存在相同的问题?把它扔回去。质疑系统构建、数据库和I/O的位置。如果OTJ和I/O刚刚启动,我的第一项检查将是确保它们没有耗尽磁盘空间。主要是因为这是很常见的,如果不被抓住,更多的事情很快就会出问题,如果他们还没有出问题的话。其次是使用DBCC SHOWCONTIG table_名称检查表的碎片级别。如果在堆表上存在一些常见的可怕问题,一个简单的解决方案是删除并重新创建表。

阻塞/极慢的IO子系统:/other transactions pending/非常慢的网络连接…我无法弄清楚。你能详细写一下吗。没有挂起的事务。这与阻止相同。假设另一个查询在研究表上获得独占锁,以更新实例数据。在ReadCommitted隔离级别中,您无法读取它。即使我也没有太多关于它的信息。这是一个面试问题。