小编Han*_*non的帖子

评估合理缓冲池大小的确定性方法是什么?

我试图想出一种理智的方法来了解max server memory (mb)设置是否合适(应该更低,或更高,或保持原状)。我知道max server memory (mb)应该总是足够低,以便为操作系统本身等留出空间。

我正在查看的环境有数百台服务器;我需要一个可靠的公式来确定缓冲池的当前大小是否合适,因为 RAM 是按分配给每个服务器的 GB 计算的。整个环境都是虚拟化的,分配给 VM 的“物理”RAM 可以轻松地向上或向下更改。

我有一个特定的 SQL Server 实例,我现在查看的 PLE 为 1,100,052 秒,相当于 12.7 天(服务器启动的时间)。服务器的最大服务器内存设置为 2560MB (2.5GB),其中实际仅提交 1380MB (1.3GB)。

我已经阅读了几篇文章,包括 Jonathan Keheyias(帖子)和 Paul Randal(帖子)的另一篇文章,以及其他几篇文章。Jonathan 主张监控每 4GB缓冲池低于 300 的 PLE太低了。对于上面的 SQL Server 实例,300 * (2.5 / 4) = 187导致目标 PLE 非常低,低于 300。此实例具有 290GB 的 SQL Server 数据(不包括日志文件),仅用于集成测试。假设在过去的12天代表该服务器的典型用法的,我想说的max server memory (mb)设置可能会降低。

在规模的另一端,我有另一个 PLE 为 …

sql-server sql-server-2008-r2 sql-server-2012

29
推荐指数
2
解决办法
6596
查看次数

与代理整数键相比,自然键在 SQL Server 中提供的性能更高还是更低?

我是代理键的粉丝。我的发现存在确认偏倚的风险。

我在这里和http://stackoverflow.com 上看到的许多问题都使用自然键而不是基于IDENTITY()值的代理键。

我的计算机系统背景告诉我,对整数执行任何比较运算都比比较字符串快。

这个评论让我怀疑我的信念,所以我想我会创建一个系统来研究我的论点,即整数比字符串更快,用作 SQL Server 中的键。

由于小数据集可能几乎没有可辨别的差异,我立即想到了一个两表设置,其中主表有 1,000,000 行,而辅助表在主表中的每一行有 10 行,总共有 10,000,000 行。次要表。我的测试的前提是创建两组这样的表,一组使用自然键,一组使用整数键,并在简单的查询上运行计时测试,例如:

SELECT *
FROM Table1
    INNER JOIN Table2 ON Table1.Key = Table2.Key;
Run Code Online (Sandbox Code Playgroud)

以下是我作为测试台创建的代码:

USE Master;
IF (SELECT COUNT(database_id) FROM sys.databases d WHERE d.name = 'NaturalKeyTest') = 1
BEGIN
    ALTER DATABASE NaturalKeyTest SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
    DROP DATABASE NaturalKeyTest;
END
GO
CREATE DATABASE NaturalKeyTest 
    ON (NAME = 'NaturalKeyTest', FILENAME = 
        'C:\SQLServer\Data\NaturalKeyTest.mdf', SIZE=8GB, FILEGROWTH=1GB) 
    LOG ON (NAME='NaturalKeyTestLog', FILENAME = 
        'C:\SQLServer\Logs\NaturalKeyTest.mdf', SIZE=256MB, FILEGROWTH=128MB); …
Run Code Online (Sandbox Code Playgroud)

performance sql-server sql-server-2012 surrogate-key natural-key performance-testing

28
推荐指数
3
解决办法
4879
查看次数

创建表时如何确定默认表空间?

Tablespace创建表时该参数是可选的。

执行CREATE TABLE语句时,如果未定义,Oracle 会分配默认语句。

在默认数据库中有一个“USERS”表空间。如果定义了多个表空间,将分配哪一个?

oracle

27
推荐指数
2
解决办法
18万
查看次数

在 SQL Server 中执行 FIZZBUZZ 测试的最有效方法是什么?

是否有更有效的方法来获得从 1 到 49 的数字列表,其中一列包含单词,FIZZ当数字可以被 3 整除BUZZ时,当数字可以被 5 整除FIZZBUZZ时,当数字可以被均分时由两个3和5?

我的尝试是(注意,这会清空您的过程缓存,所以不要在生产箱上运行):

DBCC FREEPROCCACHE
GO
/*VARIANT1*/
;WITH t AS (
    SELECT RowNum = ROW_NUMBER() OVER (ORDER BY o.object_id)
    FROM sys.objects o
)
SELECT t.RowNum
    , CASE WHEN ((t.RowNum % 3) + (t.RowNum % 5)) = 0  THEN 'FIZZBUZZ' 
    ELSE 
        CASE WHEN t.RowNum % 3 = 0 THEN 'FIZZ' 
        ELSE 
            CASE WHEN t.RowNum % 5 = 0 THEN 'BUZZ' 
            ELSE '' 
            END 
        END 
    END
FROM …
Run Code Online (Sandbox Code Playgroud)

sql-server

27
推荐指数
7
解决办法
2726
查看次数

不存在系统管理员帐户时如何添加新的系统管理员帐户

在测试期间,我取消了登录的系统管理员权限,现在无法重新添加它(因为我没有系统管理员权限)。

[sa]帐户外,实例没有其他系统管理员帐户。

我只设置了 Windows 身份验证,所以我LoginMode在注册表中破解了2以便我可以sa使用 SQL 身份验证登录。这确实将登录模式设置为Mixed,但是sa默认情况下用户被禁用,我无法重新启用它,因为我没有系统管理员权限。

如何启用sa登录以便我可以进入并将系统管理员重新分配给我的普通帐户?是否也有一个注册表设置,或者它是否存储在主数据库中?

sql-server

26
推荐指数
4
解决办法
10万
查看次数

尝试查看数据库层次结构时出现“超出锁定请求超时期限”错误

我在使用数据库时遇到问题。

  1. 我可以运行基本查询,尽管比正常情况慢得多。

  2. 当我尝试在 SSMS 对象资源管理器中查看表、视图或过程的层次结构树时,我得到lock request time out period exceeded.

  3. 我在此数据库中的对象上运行的 SSRS 报告不再完成。

  4. 与存储在此数据库中的过程相关的作业也不会运行。

我尝试使用sp_who2查找并终止数据库上的所有连接,但这并没有解决问题。

这里发生了什么?我该如何解决这个问题?

sql-server-2008 sql-server

26
推荐指数
4
解决办法
15万
查看次数

需要一本数据库设计书

我正在设计一个数据库,它在我的表之间有很多关系,我需要一本很好地教授数据库设计的书。我正在寻找一本书,其中广泛涵盖了简单和复杂的表关系,也许书中有案例研究。

database-design

23
推荐指数
4
解决办法
9201
查看次数

什么会导致镜像会话超时然后进行故障转移?

我们有两个生产 SQL Server 运行 SQL Server 2005 SP4 和累积更新 3。两台服务器都在相同的物理机器上运行。DELL PowerEdge R815 配备 4 个 12 核 CPU 和 512GB(是 GB)内存,以及用于所有 SQL 数据库和日志的 10GB iSCSI SAN 连接驱动器。操作系统是带有所有 SP 和 Windows 更新的 Microsoft Windows Server 2008 R2 企业版。操作系统驱动器是一个 RAID 5 阵列,包含 3 个 72GB 2.5" 15k SAS 驱动器。SAN 是一个 Dell EqualLogic 6510,带有 48 个 10K SAS 3.5" 驱动器,配置为 RAID 50,为 2 个 SQL Server 划分为各种 LUN,并且还共享带有一台 Exchange 机器和几台 VMWare 服务器。

我们有 20 多个数据库,其中 11 个使用见证服务器以高可用性镜像。见证服务器是一台运行 SQL Server 实例的低功耗机器,它除了提供见证服务外别无其他用途。最大的镜像数据库是 450GB,产生大约 100-300 iops。数据库镜像监视器报告的当前发送速率约为每秒 …

sql-server-2005 sql-server mirroring troubleshooting

23
推荐指数
1
解决办法
2万
查看次数

如何为 PostgreSQL 中的备份创建只读用户?

在 PostgreSQL 中创建只读备份用户是不可能的吗?

我在 IRC 频道上被告知,您根本不能拥有没有所有权权限的仅备份用户。我觉得这很奇怪,所以我想确保我没有遗漏任何东西。

下面是我尝试过的,但它没有给我我正在寻找的结果。当我pg_dump在给定的桌子上做时,我得到Permission denied for relation...

GRANT SELECT ON ALL TABLES IN SCHEMA public TO backup; 
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO backup; 
GRANT SELECT, USAGE ON ALL SEQUENCES IN SCHEMA public TO backup;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT, USAGE ON SEQUENCES TO backup;
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

backup permissions postgresql-9.1

23
推荐指数
6
解决办法
3万
查看次数

有没有工具可以检查我的数据库是否规范化为第三范式?

我最近了解了规范化,并了解在实现新模式时它的重要性。

如何检查我的数据库是否符合 2NF 或 3NF?

手动审查是一个确定的选择,但我正在寻找一种自动化工具。

我不是在寻找点击式工具,更多的是强调可能的优化以使表格符合 3NF。我猜它可能会使用基于良好样本数据和/或列名语义分析的统计数据。

schema normalization database-design database-recommendation

22
推荐指数
2
解决办法
4万
查看次数