当前位置:首页 » 编程语言 » 大sql数据库跑不动
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

大sql数据库跑不动

发布时间: 2022-04-28 20:42:21

‘壹’ sql数据库数据量太大,导致搜索时很慢,如何解决

减少信息重复、更新异常、插入异常、删除异常等等。

‘贰’ sql2000数据库太大备份不动怎么办

1680M虽然不小,但也不会备份了这么久,
如果数据库能暂停,那可以重启一下数据库,然后再尝试备份,
如果重启了还不行,那就先分离掉,然后复制一份出来。
如果不能暂停,那试试添加备份计划看能不能行得通

‘叁’ ACCESS数据库的体积多大时操作会卡呢

ACCESS数据库的体积是有限制的,单个ACCESS数据库文件的SIZE最大限制是2G。对于一般单机用户来说,如果不存储图片、音乐等数据文件,它足够您存储n多年的数据了。

ACCESS一般来说几百M不在话下,设计良好的数据库存储几百甚至上千万行数据也可以飞快地运行,但是设计不佳的数据库可能存储几千行数据就跑不太动的情况也会发生。当然您电脑配置的高低也对运行是否顺畅有重要影响。不过请注意,ACCESS数据库的最大问题是稳定性不太好,容易崩溃,对于前台和后台都在一起的数据库应用系统更是如此。如果您的数据非常重要,强烈建议建议将前台应用程序和后台数据库分开。根据我们多年使用ACCESS数据库的经验来看,前台与后台分开的ACCESS数据库应用系统因为崩溃而导致数据丢失的情况绝少发生,而两者合在一起的因系统崩溃而导致数据丢失则是大概率事件!

良好设计是数据库顺畅运行的前提,这对所有数据库都适用,否则即使是ORACLE、MSSQL这些大型数据库系统也一样跑不动

‘肆’ MSSQL数据库 数据量过200万,怎么样可以加速、稳定

随着记录的越来越多,访问效率有所降低那是正常的,但像你的“200万条记录,100MB的”数据库,应该效率很高才对的
估计是你哪里出现了瓶颈问题了

首先,问题可能由以下方面引起的:
1、磁盘io速度慢?
2、你的库中一些大表(记录比较多的表)的索引建立得不合理?
3、你的一些sql语句写法不够优化?
4、可能涉及到数据库操作的一些逻辑处理操作比较复杂?
5、分配给SQL SERVER的可用内存过小,造成数据缓存命中率过低?(即大部分数据每次都要读自硬盘,而不是读自内存缓冲)
6、是否有一些涉及到操作数据库的大计划任务在频繁的执行着?
7、是否表的索引产生了大量的碎片,造成命中率过低?

下面列出一些检查解决办法:
1、通过“windows 任务管理器”中的“进程”项添加io列检查io的变化及处理速度。
2、如果你系统是多个磁盘的,考虑在数据库的文件组下建立多个文件(这多个文件分散到不同的磁盘上去,以提高io处理速度)。
3、检查你的库中,哪些表的记录多,然后着重分析这些大表的结构、索引等是否建立得合理(注:索引不是越多越好的,因为索引在提高查询效率的同时,也会增加维护索引的代价的,如:update表、insert表、delete表等时需要维护索引)。
4、利用sql server自带的“事件探查器”去跟踪数据库中哪些语句的执行最为耗时(通过这个基本上可以定位整个系统慢在哪些语句上)?
5、找到一些下率低下耗时的语句,分析其涉及到的表的索引是否合理,可以把语句拷贝到“查询分析器”上,然后按"ctrl+K"显示语句的“执行计划”,然后按F5执行语句,看其“执行计划”的结果,跟踪分析这些语句慢在那里(这里有便于引导你去建立一些合理的索引)。
6、建议你的服务器只跑数据库,然后给其分配合理足够的内存让SQL SERVER独占,在“企业管理器”里,选中你注册的SQL SERVER服务器,右键,然后在弹出的窗口里选“属性”,进去再选“内存”那项,把内存的最大值设为一个合理的值(如:你的服务器只跑SQL 服务的话,那可以选80%的内存给SQL server)。
7、检查SQL server的作业,看是否常有一些大作业调度在执行?这些调度是否可以优化或合并?
8、定期对表的索引进行重建(特别是对一些频繁变化记录的大表),另外,在重建时,对一些频繁变化记录的表,其填充因子要填合适的值(如,一个表的记录是不断增加的,那填充因子就不能填100%了,这样容易引起页拆分而使效率降低),下面举个例子:
下例使用填充因子值 70 重建 authors 表上的所有索引。
DBCC DBREINDEX (authors, '', 70)

9、利用系统自带的一些存储过程去跟踪系统每个连接的cpu、io等情况或资源锁定情况,这样容易定位一些连接或操作或对象等。如:
sp_who2
sp_lock

‘伍’ SQL数据库文件太大怎么处理

处理方法:
1、用BACKUP LOG database WITH NO_LOG清除日志
把数据库属性中的故障还原模型改为“简单”可以大大减慢日志增长的速度。
用BACKUP LOG database WITH NO_LOG命名后,会截断不活动日志,不减小物理日志文件的大小,但逻辑日志会减小,收缩数据库后会把不活动虚拟日志删除来释放空间,不会损坏数据。
如果日志被截断并收缩数据库后,就不能直接用最近的一个全库备份做时间点还原,建议立即备份数据库,以防万一。
2、sql server运行中,删除主数据库事务日志文件,步骤如下:
(1)、分离数据库管理器-数据库-右击要删除日志的数据库-所有任务-分离数据库
(2)、然后删除日志文件
(3)、然后再附加数据库
企业管理器-数据库-右击数据库-所有任务-附加数据库时只附加mdf.
3、压缩SQL数据库及日志的详细方法
可以在数据库属性选项中选择“Auto shrink”选项,让系统自动压缩数据库,也可以用人工的方法来压缩。

‘陆’ SQL数据库容量大,查询速度慢,有何解决方案

首先应该确定是谁慢的,往往是程序处理方面的问题而不是数据库的问题。
程序方面应该尽可能的减少数据查询返回的内容,比如可以查询返回ID,然后再根据ID一条一条的查询具体内容,看似慢了,在数据量达的时候快很多

对于数据可以参照下面几点
1、优化SQL语句,SQL语句对查询速度影响最大
2、对于经常查询的字段作索引。但是这样会增加修改时的压力
4、优化SQLServer,比如给其分配固定的内存,预先分配查询内存,调整CPU使用率等。
5、优化硬件资源,比如使用更高的服务器或者硬盘,独立安排数据库的数据文件和索引文件,将数据文件分布于不同的物理硬盘上等等
6、考虑使用分布数据库或者对大表进行拆分

另外,2G的数据库应该不算很大了,我处理过18G的数据库,8000万条记录,查询速度可以被接受

‘柒’ SQL数据库问题(为什么我后面四个运行不了啊)求救

这里,你要理解主键和外键的基本含义,简单来说就是:
1、主键是用来唯一地标识一行数据。主键列必须包含唯一的值,且不能包含空值(null)。
2、外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。
你的后面外键的定义可以错误报错信息已经很清楚的告诉你问题在哪了,【在被引用表 'staff' 中没有与外键 'fk_room_sID_staff_sID' 中的引用列列表匹配的主键或候选键。】,你的staff表是复合主键,但是你外键定义时没有加上所有主键码,这样的外键是无法创建成功的。
原因还是从上面主外键定义来分析,主外键最终数据都是同步级联更新的,你的定义不同步,就会导致你没法更新,举个例子
表1(列1, 列2)主键【列1,列2】
表2(列A,列B)外键【列A】对应主键码 【列1】
如果是这样定于的话,当你删除表2记录时,因为时级联删除,表1可能会删除掉其他不需要删除的信息,因为不是根据表1主键删除的。
你按照各表主键去重新修改定义下你的外键问题就解决了。

‘捌’ SQL数据库太大怎么办

我有个大的 SQL 文件要回放,需要马上做,但又怕压死业务,怎么办?

先来建一个测试库:

可以看到 CPU 已经非常冷静,并且缓慢的处理数据。

💡小贴士:pv 工具既可以用于显示文件流的进度,也可以用于文件流的限速。在本实验中,我们用 PV 来限制 SQL 文件发到 MySQL client 的速度,从而限制 SQL 的回放速度,达到不影响其他业务的效果。

‘玖’ SQL数据库太大怎么办

数据库重组,分多表。注意数据安全转移