所以 - 我们有一个内部公司数据库,通常的东西:管理客户、电话、销售交易和客户协议/计划。
它是一个 Access 2000 前端和一个 SQL Server 2000 Standard 后端。单台服务器、双 Xeon 3.2GHz、2GB RAM、Windows Server 2003,整天获得大约 40% 的 CPU 负载,分布在操作系统 (HT) 可见的 4 个内核上。
后端数据库设计不佳,已经有机增长超过 10 年,由不那么熟练的人员维护。它被严重规范化,一些明显的问题包括具有数万行没有主键或索引的表,这些表也大量用于系统中一些最常用部分的多表连接(例如呼叫管理器应用程序,每天在每个人的第二台显示器上运行 8 小时,每隔几秒钟运行一次低效的大查询)。
前端也好不到哪里去,它是典型的由数百个表单、嵌套保存的查询、VBA 代码中编写不当的嵌入式 SQL、数十个“怪癖”等组成的典型混乱,并且每当进行更改时,一些无关的东西似乎都会中断。我们已经确定了一个运行“足够好”的 MDB,现在有一个不变的政策,因为我们内部没有 Access 重量级人物(也没有计划雇用一个)。
公司现在正在缓慢增长,增加客户、呼叫等数量,同时并发用户数量适度增加,最近性能明显变差(等待在表单之间移动,等待列表填充等) )
Perfmon 说:
SQL Server 的探查器每分钟看到数十万个查询。客户端上的 CPU 使用率几乎为零,表明它正在等待服务器端查询执行。我已经通过 DB Engine Tuning Advisor 处理了这个工作负载,并将其建议应用于测试备份,但这并没有产生太大的不同。
顺便说一下,我们有 100MB 和千兆以太网的混合,都在一个子网上,两层楼有 40 个用户。
对问题。
在我看来,我们有两种选择来解决/改善这种情况。
我们可以用比更换软件低一个数量级的成本来构建具有疯狂性能数字的 Intel i7 系统。
当最终开发出一个新系统时,它可以托管在这个盒子上,因此不会浪费硬件。一个新的 CRM 系统不断被推迟、关闭、关闭——我认为这种情况至少在一年内不会发生。
对这种情况的任何想法,特别是如果您亲自来过这里,将不胜感激。
谢谢
在 SQL Server 2005/2008 中,如何判断快照隔离是否打开?我知道如何打开它,但我找不到让 google 告诉我如何查询“快照隔离”选项的状态的咒语。
我设置了三个维护计划以在 Sql Server 2005 实例上运行:
每小时的日志备份通常在几百 Kb 到 10Mb 之间,具体取决于活动水平,每日差异通常在周末增加到 250Mb 左右,每周备份约为 3.5Gb。
我遇到的问题是完整备份之前的优化似乎导致下一个事务日志备份在恢复正常之前增长到完整备份大小的 2 倍以上,在本例中为 8Gb。
除此之外BACKUP LOG <DatabaseName> WITH TRUNCATE_ONLY,是否有任何方法可以减少该日志备份的大小,或者完全防止将优化记录在事务日志中,因为它们肯定会在它们之前的完整备份中被考虑在内?
我们有一个特定的 SQL Server 2008 查询(不是存储过程,而是相同的 SQL 字符串——每 5 分钟执行一次),它间歇性地缓存一个非常糟糕的查询计划。
这个查询通常在几毫秒内运行,但是这个糟糕的查询计划需要 30+ 秒。
如何从 SQL Server 2008 中手术删除一个错误的缓存查询计划,而不破坏生产数据库服务器上的整个查询缓存?
曾几何时,我构建了自己的 SQL 服务器,并且可以控制驱动器配置、RAID 级别等。传统的数据、日志、tempdb、备份分离建议(取决于预算!)始终是一个非常重要的部分SQL 服务器设计过程。
现在有了企业级 SAN,我只需为新 SQL 服务器请求特定数量的驱动器空间,分为用于数据、备份和文件共享的逻辑驱动器。当然让我的工作更轻松,但我的一部分感觉并不完全舒服,我无法真正窥视“幕后”,看看那里到底发生了什么。
我的理解是,SAN 团队不会以任何不同的方式配置不同“类型”的驱动器(优化数据驱动器以进行随机访问,而优化日志驱动器以进行流式写入)。其中一些可能取决于 SAN 产品本身(我们有 HP XP12000 和 HP XP24000),但我确信 HP 软件会进行各种动态性能配置(观察 IO 热点并动态重新配置以优化这些 LUN),这样应用程序团队和 DBA 就无需担心任何这些事情。关于“将所有服务器的负载分散到大量主轴上”之类的东西。
我的问题/讨论:
在不与 SAN 团队树敌的情况下,我如何让自己和应用程序开发人员放心,我们的 SQL 服务器不会受到配置不当的存储的困扰?只使用性能统计?其他基准,如sqlio?
如果我在这些 SAN 驱动器上进行负载测试,这是否真的为我提供了一个可靠的、可重复的衡量我们上线时将看到的内容?(假设 SAN 软件可能在不同的时间点以不同的方式“动态配置”。)
SAN 的某一部分(比如 Exchange 服务器)中的大量 IO 会影响我的 SQL 服务器吗?(假设他们没有为每个服务器提供专用磁盘,我被告知他们没有)
请求为不同功能的逻辑驱动器(数据 vs 日志 vs tempdb)分离逻辑驱动器在这里有帮助吗?SAN 会看到这些不同的 IO 活动并以不同的方式优化配置它们吗?
我们现在有点空间紧缩。应用程序团队被告知要修剪数据存档等。空间问题是否会导致 SAN 团队就如何配置可能影响服务器性能的内部存储(RAID 级别等)做出不同的决定?
感谢您的想法(在这个 SF 问题中简要讨论了类似的主题)
我将敏感数据存储在Azure DB和Azure SQL VM 中。
授权的 DBA 可以登录并查询数据库,但理论上随机的 Microsoft 员工可以在未经许可的情况下执行相同操作吗?
我在网上找到了这个,这表明答案是“不”,但真的是这样吗?
客户数据所有权:Microsoft 不会检查、批准或监控客户部署到 Azure 的应用程序。而且,微软也不知道客户选择在 Azure 中存储什么样的数据。Microsoft 不对输入到 Azure 中的客户信息声明数据所有权。
在讨论使用 SQL 开发人员许可证的负面影响的站点上也发现了这一点:
Microsoft 可以访问您的数据:对于 SQL Server 的任何非商业安装,包括性能、错误、功能使用、IP 地址、设备标识符等在内的所有使用数据都必须发送给 Microsoft。没有例外。对于任何处理特别敏感数据的公司来说,这可能会排除它。
我不是建议在 Azure 上使用开发人员许可证,但究竟是哪一种 - Microsoft 是否可以合法地或流氓员工检查我的数据?
在 SQL Server 2008 中有一个权限 VIEW SERVER STATE。此权限赋予用户什么权利?SQL Server 的服务器状态是什么意思?
permissions database database-administration sql-server sql-server-2008
基本:我的 MS SQL Server 数据库的磁盘大小是多少?
更多:我可以快速查看数据在哪里吗?即哪些表、日志等
注意:我显然已将服务器名称和 IP 更改为虚构的。
这是发生了什么。我有一台MYSERVER运行 Microsoft SQL Server Express 2005 的服务器。就在这台服务器上,我已经建立了一个指向它自己的 ODBC 连接,它已经完美地工作了。我使用 SQL Server 身份验证(不是 Windows 身份验证)登录,它的设置如下:

就像我说的那样,那个有效。但是接下来,我有另一台位于完全不同域/不在 Intranet 上的计算机,它需要访问托管在 MYSERVER 上的同一个 SQL Server。因为它在不同的域中,所以它不能识别名称“MYSERVER”;我必须将它指向 MYSERVER 的 IP 地址,我们会说它是 123.456.789.012。但是 ODBC 连接似乎在那里不起作用。我试着这样设置:

这不起作用。当我输入用户名和密码并按下一步时,它停顿了 10 到 20 秒,然后最终返回以下错误:
Connection failed:
SQLState: '01000'
SQL Server Error: 1326
[Microsoft][ODBC SQL Server Driver][DBNETLIB]ConnectionOpen (Connect()).
Connection failed:
SQLState: '08001'
SQL Server Error: 17
[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied.
Run Code Online (Sandbox Code Playgroud)
如果我尝试同样的事情,但将“服务器”从123.456.789.012\SQLEXPRESS简单的更改为old 123.456.789.012,我会收到一个不同的错误:
Connection failed:
SQLState: '01000'
SQL …Run Code Online (Sandbox Code Playgroud) 我想知道当任何逻辑磁盘分区空间不足时,是否有一种简单的方法可以在 Windows Server 2008 上触发电子邮件警报。由于数据库日志文件,我有 2 个 SQL 服务器几乎耗尽磁盘空间。
谢谢,瑞安
windows-server-2008 hard-drive disk-space-utilization alerts sql-server
sql-server ×10
alerts ×1
azure ×1
azure-sql ×1
cache ×1
database ×1
hard-drive ×1
hardware ×1
odbc ×1
performance ×1
permissions ×1
privacy ×1
query ×1