首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >考虑一个有点重的数据库

考虑一个有点重的数据库
EN

Database Administration用户
提问于 2016-05-23 02:04:20
回答 2查看 142关注 0票数 1

环境信息

  • 操作系统: Windows 2012 R2 (64位)
  • RAM : 16.00GB
  • CPU : Intel(R) Xeon(R) CPU E5-2609 @ 2.40GHz
  • SQL : 2012标准

简略数据库数据信息

  • 在10个以上的表中,有一个表具有varbinary(max)列。
  • 该表有超过100万条记录,每列都有占用约20k的缩略图数据。

简表

  • 表名: RegisteredThumbnail
  • 列名: UserId,ThumbData,已创建,更新
  • 列类型: int、varbinarymax、datetime、datetime
  • 已使用的空间信息:行: 1,034,300行保留: 34,092,160 KB数据: 34,054,872 KB

查询

代码语言:javascript
复制
SELECT * FROM RegisteredThumbnail WHERE UserId = 512315

这个查询大约需要6:45分钟才能获取预期的行。

为了克服这个问题,索引是我唯一的选择吗?

通过将二进制数据替换为图像url作为字符串数据来改变图像数据的存储方式会有很大帮助吗?

但是,由于这是一个当前的操作系统,更改列并不是一个好主意。

任何想法都将不胜感激。

尚未配置任何索引。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2016-05-23 03:55:05

这个表应该在UserId上有一个聚集索引。如果每个用户只有一个缩略图,那么聚集索引可以是主键。

由于您说您在SQLServer 2012标准版上有一个当前正在运行的系统,因此在线索引构建是不可能的。您可以等待一个低活动周期来创建索引,或者创建一个新表,将数据迁移到其中,然后切换到使用新表。

理想情况下,该表应该如下所示:

代码语言:javascript
复制
CREATE TABLE RegisteredThumbnail
(
    UserId       INT            NOT NULL,
    ThumbData    VARBINARY(MAX) NOT NULL,
    Created      DATETIME2(7)   NOT NULL,
    Updated      DATETIME2(7)   NULL,

    CONSTRAINT PK_RegisteredThumbnail PRIMARY KEY CLUSTERED (UserId ASC)
)

由于无法重新创建表,因此需要创建以下索引:

代码语言:javascript
复制
CREATE INDEX IX_RegisteredThumbnail_UserId
ON RegisteredThumbnail(UserID ASC)

正如你在2012年的标准,这将是一个“离线”操作-它将阻止该表上的活动,而索引正在构建。考虑到它只有一百万行,构建它不需要太长时间,但是它必须扫描表才能完成,所以您将受到它读取数据的速度的限制。

票数 7
EN

Database Administration用户

发布于 2016-05-23 03:56:42

  • 服务器内存太少。16 is是指高端平板电脑的内存容量。也就是说,这可能是次要的,因为不考虑var二进制,数据库非常小。但即便如此,也会导致服务器内存超载。这很重要因为..。
  • 对于大多数数据库使用来说,磁盘速度是最重要的,CPU并不重要(因为内存作为缓存和磁盘速度是重要的,而当缓存溢出时,CPU就没有真正的赋税)。数据库服务器通常有非常精心规划的磁盘布局-或低性能。我们不一定要谈论“几个磁盘”。我的低端数据库服务器有48 O.内存,总共使用10个SSD和2个HDD来处理数据和日志文件--因为我需要I/O。
  • 索引是唯一的方法。它们是不需要运行整个表(即.a)的数据库方式。(表扫描)您应该有标准索引(聚集主键、所有外键)以及在对查询进行分析后认为必要的其他索引。
票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/139219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档