sql - 从 Azure 导出时,本地主机 SQL Server 数据库非常慢并且站点超时
问题描述
我在 Azure 上有一个大约 500mb 的数据库,大约 50 个表和一些具有 100k+ 记录的表。具有约 1000k 记录的单个表。这不是一个大数据库(大约 20-50 个 DTU)。我有一个在这个数据库之上运行的 ASP.NET MVC 应用程序。
当我从本地或在我的测试/生产环境中运行该数据库时,该数据库非常快。我的代码是“可靠的生产代码”(索引、分页),这意味着我不会做任何疯狂的事情,这适用于非常繁重的生产负载。
但是,当我在本地导入这个数据库时,它非常非常慢(页面需要 10-20 秒才能加载,或者只是失败)。这导致我基本上无法在本地运行我的应用程序。这是我收到的示例错误(DK 错误消息,但典型错误 - 请参阅等待操作超时。ASP):
当我在主应用程序之外运行查询时,我遇到了同样的问题。我 99% 确定这是一个数据库问题,而不是应用程序问题,因为当我运行脚本时它也很慢。
知道问题是什么吗?为什么我的 localhost 这么慢,几乎不能运行正常的查询?
这就是我创建本地数据库的方式:
保存到本地桌面:
我导入(localdb)\MSSQLLocalDB
:
等待这种情况发生,一切都得到确认。然后我将我的连接字符串更改为这个数据库。
解决方案
我怀疑您没有足够的 RAM 来托管您自己的服务器。我遇到了这个问题,在 Windows 10 机器上本地托管 MSSQL 服务器 2012,内存为 8GB,Core i7 第 10 代。有时没有问题,但大多数情况下我的查询响应时间非常慢,甚至超时。这是我的开发机器,我注意到所有的 RAM 都被消耗掉了,仅来自开发,没有任何数据库连接。所以我怀疑也没有足够的内存来查询数据库。
我将 RAM 增加到 32GB(但 16GB 就足够了),问题解决了。
推荐阅读
- java - 此代码如何导致填充 dummy 和 L3 列表?
- angular - 如何过滤来自商店的对象数组(通过选择器)
- python - 即时更新 KivyMD 按钮(Python)
- typescript - 如何使用 TypeScript 在 express 中键入`request.query`?
- nvidia - 尝试将其转换为 tensorrt 或 tflite 时出现内存问题
- sql - 基于条件结束的 SAS 宏循环
- mysql - Django order_by 导致查询非常慢
- primes - 素数的乘积
- vue.js - 如何在页面刷新时更新 vue-router?
- java - 在本地机器上克隆 JUnit 5 后,执行“assemble”任务时出现编译时错误