Sql server sql数据库查询占用的时间过长

Sql server sql数据库查询占用的时间过长,sql-server,Sql Server,我已经好几年没有使用SQL和C.NET了,所以请温柔一点 我是来协助一个同事正在做的项目的。但有些事情似乎很不正常 我试图提供数据库中特定表的直接报告。上次我检查时,它有9列,大约160万行。这是一个很大的问题,但它几乎不足以产生问题。然而,当我使用MSSQLServerManagementStudio运行一个简单的查询时,需要11秒 SELECT * FROM [4.0Analytics].[dbo].[Measurement] where VIN = 'JTHBJ46G4822710

我已经好几年没有使用SQL和C.NET了,所以请温柔一点

我是来协助一个同事正在做的项目的。但有些事情似乎很不正常

我试图提供数据库中特定表的直接报告。上次我检查时,它有9列,大约160万行。这是一个很大的问题,但它几乎不足以产生问题。然而,当我使用MSSQLServerManagementStudio运行一个简单的查询时,需要11秒

SELECT *
  FROM [4.0Analytics].[dbo].[Measurement]
  where VIN = 'JTHBJ46G482271076';
我尝试为VIN创建索引,但它超时了。 执行Transact-SQL语句或批处理时发生异常。 无法在数据库“您的数据集”中为对象“X”分配空间,因为“主”文件组已满


然而,它似乎应该在第一个地方花更少的时间,即使没有索引,所以我想找出哪里可能是错误的,然后进入索引超时下一步。除非11秒对于非索引的简单查询是正常的?

正如David Gugg提到的,您的数据库中没有足够的空间

检查主文件所在的磁盘上是否有足够的空间。如果磁盘上有足够的空间,请使用以下命令,然后尝试创建索引

USE [master]
GO

ALTER DATABASE [4.0Analytics] 
  MODIFY FILE ( NAME = N'Primary_File_Name'
              , MAXSIZE = UNLIMITED
              , FILEGROWTH = 10%
              )
GO


-- This will allow your database to grow automatically if it runs out of space 
-- provided you have space left on the disk 
-- Now try to create the Index and it should let you create it. 
选择*花费的时间太长。如果在表上定义了主键,那么在表上放置多少个索引就不足为奇了。如果在表上定义了主键,那么它总是会导致聚集索引扫描,否则就是表扫描

Try `Select <Column Names>` --<-- Only the columns you actually need 
我不建议将数据文件自动授权设置为百分比[%],这样更好 将其设置为按MB增长的最佳做法,例如:

使用[母版] 去

更改数据库[YourDataBaseName]修改 文件名=N'YouDataBaseFileName', FILEGROWTH=10240KB, MAXSIZE=无限制 去

创建索引期间出现的错误为,因为该索引无法扩展。因为参数MAXSIZE设置为LIMIT value

要检查它,您可以通过以下方式进行: A.对象资源管理器>>>数据库>>>右键单击请求的数据库>>>转到选项卡文件。 b、 T-SQL:

挑选 FILE_NAMEe.FILE_id为[FileName], e、 成长,, e、 最大尺寸, e、 增长率是多少 f从sys.master_文件e 其中OBJECT_NAMEe.database_id='YourDatabaseName' 去


11秒是正常的-您肯定需要VIN上的索引。创建索引时出现的错误听起来像是磁盘空间不足-您能确认吗?160万行,我猜仅此表就约为6.5GB。如果您使用的是sql server express,则必须是2008 r^2或更高版本,其大小限制为10GB。如果HDD大小不是问题所在,SQL server版本也不是问题所在,我建议将文件组初始大小提高一些,而不是自动增长率加上当前数据文件的大小。4.0Analytics是否可以成为另一个服务器/实例/数据库名的同义词?是,从它的声音来看,数据库/表对于分配的空间来说增长太快了。在客户提出解决方案之前,我们将移动它。非常感谢。谢谢你的反馈。这是客户端的服务器,所以我们必须让他们升级。与此同时,我们将尝试将数据移动到我们的服务器上,看看在他们找到解决方案时,数据是否更易于管理。谢谢你的反馈。如果有必要,我会回来的!