我已经在Windows 8.1的桌面上安装了Microsoft SQL Server Express 2012,以教自己的SQL(并最终使用一些数据)。 我也在使用SQL Server Management Studio。
SQL Server不断地打我的磁盘,没有明显的原因。 有太多的磁盘活动,我不舒服的运行程序,因为我不想磨损我的驱动器。
以下是我所知道的:
1.如果从命令行(net stop mssqlserver)停止SQL Server,则磁盘活动停止。
2.如果从命令行(net start mssqlserver)重新启动SQL Server,并且我不在SQL Server Management Studio中,则磁盘活动不会恢复。
3.如果打开SQL Server Management Studio,连接到服务器(这是桌面),则不会恢复磁盘活动,也不会执行其他任何操作。
4.只要打开一个查询窗口(带有“新查询”)button,磁盘活动就会开始,在我做任何事情之前。 如果我没有做任何事情,closures窗口,磁盘活动继续进行。
5.在SSMS中的Activity Monitor中,我看到一个进程正在运行:tempdb上的一个SELECT。 但是我没有运行一个查询。
任何想法可能会发生什么? 我不希望在我的硬盘驱动器上出现不断的,毫无意义的磨损,只是在无所事事的情况下运行SQL Server Express。
更新:除了SSMS中显示的“系统数据库”,我只有三个数据库。 一个是来自Microsoft的AdventureWorks2012数据库进行培训。 另一个是几乎没有数据的数据库也基于一本书。 第三个是我加载到数据库中的两个文本文件。
我明白为什么这个信息通常是相关的,并且我知道,只要有数据库活动(更新,select,插入),SQL Server就处于活动状态。
我想说的是,当我什么都不做的时候,SQL Server会不断地打我的磁盘。 我没有运行一个单一的查询。 我所做的一切就是启动SQL Server,启动SSMS,并打开一个新的查询窗口。 恒定的磁盘活动然后发生。
活动监视器显示了一些必须由系统启动的“最近昂贵的查询”,因为我没有发起任何操作,但由于我是新的,所以无法发布截图。
我的希望是,我可以改变与SQL Server后台进程有关的某种全局设置。 鉴于我没有运行任何查询,我不认为恒定的磁盘活动是预期的行为。
不知道你有多less数据库等,对我来说很难具体,但我会说,SQL Server是内存和磁盘密集型。
内存:SQL喜欢将尽可能多的数据加载到内存中以获得更好的性能,因为内存比打击磁盘要快得多。
磁盘IO:SQL几乎不断写入事务日志。 logging的事情列表包括:
- 每笔交易的开始和结束。
- 每个数据修改(插入,更新或删除)。 这包括系统存储过程或数据定义语言(DDL)语句对任何表(包括系统表)的更改。
- 每个程度和页面分配或释放。
- 创build或删除表或索引。
布伦特·奥扎尔(Brent Ozar)关于SQL Server如何在这里存储数据的文章非常好。
对于SQL Server Management Studio,当您通过SSMS连接到SQL Server时,它会查询服务器以生成数据库列表等。
总之,没有更多的信息,我不惊讶,SQL正在使用您的硬盘驱动器。 要获得更多关于正在运行的信息, sp_WhoIsActive非常棒。 如果真的有什么奇怪的事情发生,那可能会帮助你find它。