小编Pau*_*ite的帖子

执行计划中缺少统计信息的警告

我有一个我无法理解的情况。我的 SQL Server 执行计划告诉我,我缺少表上的统计信息,但统计信息已经创建:

警告

但是如果我们查看表格,我们会看到有一个自动创建的统计信息:

在此处输入图片说明

有人可以帮助理解它是怎么回事吗?

Auto_Update 和 Auto_Create 统计信息在当前数据库上打开。

我正在使用 SQL Server 2014。

sql-server statistics sql-server-2014

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

无法作为数据库主体执行,因为主体“dbo”不存在

我将数据库的备份从 SQL Server 2008 R2 恢复到 SQL Server 2012。

当我尝试访问应用程序的特定页面时,出现此错误:

无法作为数据库主体执行,因为主体“dbo”不存在

它与我的 2008 R2 项目完美配合。我该如何解决这个问题?

sql-server sql-server-2008-r2

33
推荐指数
1
解决办法
6万
查看次数

CPU 时钟速度与 CPU 核心数 - 更高的 GHz,还是 SQL Server 的更多核心?

我们开始为 VMware 中的 SQL Server 2016 节点虚拟集群提供一组物理服务器。我们将使用企业版许可证。

我们计划设置 6 个节点,但关于在 CPU 时钟速度与 CPU 核心数方面配置物理服务器的理想方式存在一些争论。

我知道这在很大程度上取决于交易量和存储的数据库数量以及其他特定于软件的因素,但是否有建议的一般经验法则?

例如,双 8 核 3.2 GHz 物理服务器(16 核)是否比双 16 核 2.6 GHz 服务器(32 核)更优惠?

有没有人遇到过进一步深入研究此类主题的白皮书?

performance sql-server clustering hardware vmware

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

每个实例是否有 SQL Server Express 内存和 CPU 限制?

如果我在服务器中有 8GB 的​​ RAM 并且我运行 4 个 SQL Server Express 实例,那么 SQL Server 使用的总内存限制是 1GB 还是 4GB?

是否建议像这样运行多个实例以使每个数据库都能更好地利用资源(假设服务器有足够的资源)?

sql-server instance memory sql-server-express

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

如何正确杀死 MySQL?

我安装了 CPanel 的 CentOS 64 位,我使用:

service mysql stop
Run Code Online (Sandbox Code Playgroud)

它只是不停地滴答作响,似乎永远不会停止。在日志中,它只是发布了很多:

130303 17:42:38 [Warning] /usr/sbin/mysqld: Forcing close of thread

err.log文件中,我看到了很多这样的:

[Warning] /usr/sbin/mysqld: Forcing close of thread

它曾经是即时的。知道为什么这样做以及如何解决吗?

现在我必须这样做,killall -9 mysql但有更好的方法吗?

服务器也非常非常活跃。

这是配置问题吗?我的内存设置太高了吗?

[mysqld]
default-storage-engine=MyISAM
local-infile=0
symbolic-links=0
skip-networking
max_connections = 500
max_user_connections = 20
key_buffer = 512M
myisam_sort_buffer_size = 64M
join_buffer_size = 64M
read_buffer_size = 12M
sort_buffer_size = 12M
read_rnd_buffer_size = 12M
table_cache = 2048
thread_cache_size = 16K
wait_timeout = 30
connect_timeout = 15
tmp_table_size = 64M
max_heap_table_size …
Run Code Online (Sandbox Code Playgroud)

mysql linux mysql-5.5 shutdown

32
推荐指数
2
解决办法
9万
查看次数

仅备份一个架构并将其还原到另一台服务器上

我有一个名为“A”的数据库,它有两个模式“B”和“C”。

我想在不同的服务器上备份和恢复架构“B”(包括数据)。不知道如何做到这一点,因为我是 Postgres 的新手。

我是否必须在名为“A”的新服务器上创建一个新数据库,然后在其上恢复架构“B”?

请帮助执行必要的命令。

在 Ubuntu 12.04 上运行的 PostgreSQL 9.1

schema postgresql backup postgresql-9.1

32
推荐指数
3
解决办法
9万
查看次数

复式记账数据库设计

我正在创建会计软件。我需要强制执行复式簿记。我有一个经典的问题,每笔交易一行而不是两行。

让我们举一个例子,看看它是如何在这两种情况下实现的。

考虑 accountCash和 account Rent。当我支付每月租金时,我会从我的Cash帐户中将 100 美元转入我的Rent帐户。

每笔交易一行

在一行系统中,此类事务将存储为:

交易

 tx_id | posting_date
 1     | 23/05/2015
Run Code Online (Sandbox Code Playgroud)

交易记录

 id | tx_id | credit_account | debit_account | amount
 1  | 1     | Cash           | Rent          | 100.00
Run Code Online (Sandbox Code Playgroud)

每个事务两行

在两行系统中,我必须镜像相同的交易记录以创建相反的记录,一旦我将两者相加,我就会得到零余额。

交易

 tx_id | posting_date
 1     | 23/05/2015
Run Code Online (Sandbox Code Playgroud)

交易记录

id  | tx_id | type   | account | amount
1   | 1     | credit | Cash    | 100.00
2   | 1     | debit  | Rent    | 100.00 …
Run Code Online (Sandbox Code Playgroud)

database-design

31
推荐指数
3
解决办法
4万
查看次数

查询以报告磁盘空间分配和已用空间

我们为一个应用程序总共使用了 6 个数据库,并且我们只能在所有 6 个自动增长数据库之间共享 4TB 的空间(通过 SAN 存储)。

我想为单个数据库编写一个查询(报告),指示 SQL Server Management Studio 中的任务 > 收缩 > 数据库选项下的“当前分配的空间”和“可用的可用空间”属性。

然后我想将这些数字转换为 TB 并对每个数据库进行总计,以粗略估计我们还剩下多少空间。可以通过 T-SQL 查询访问这些字段吗?如果是这样,查询会是什么样子?

收缩数据库对话框

sql-server-2008 sql-server disk-space

30
推荐指数
4
解决办法
13万
查看次数

为什么 CREATE INDEX ... WITH ONLINE=ON 会在几分钟内阻止对表的访问?

我有一个现有的表:

CREATE TABLE dbo.ProofDetails
(
    ProofDetailsID int NOT NULL 
        CONSTRAINT PK_ProofDetails 
        PRIMARY KEY CLUSTERED IDENTITY(1,1)
    , ProofID int NULL
    , IDShownToUser int NULL
    , UserViewedDetails bit NOT NULL 
        CONSTRAINT DF_ProofDetails_UserViewedDetails 
        DEFAULT ((0))
);
Run Code Online (Sandbox Code Playgroud)

该表有 150,000,000 行。系统 24x7x365 全天候运行,因此没有定期发生的维护窗口。

我想向表中添加索引,并且使用 SQL Server 的企业版,我应该能够在不阻止对表的写访问的情况下做到这一点。我使用的命令是:

CREATE INDEX IX_ProofDetails_ProofID_Etc 
ON dbo.ProofDetails (ProofID, IDShownToUser)
INCLUDE (UserViewedDetails)
WITH (ONLINE=ON
    , ALLOW_ROW_LOCKS=ON
    , ALLOW_PAGE_LOCKS=ON
    , FILLFACTOR=100
    , MAXDOP=4
);
Run Code Online (Sandbox Code Playgroud)

我在 SSMS 中通过按 自行执行了该语句F5。它运行了超过一分钟,然后开始阻塞其他会话。然后我立即取消了该CREATE INDEX命令,因为我无法阻止其他会话。

在第一分钟,没有任何东西阻止我的CREATE INDEX命令,sys.dm_exec_requests显示了等待类型CXPACKET- 当然。我认为这不是一件坏事,因为操作是并行化的。 …

index sql-server sql-server-2012

30
推荐指数
1
解决办法
6万
查看次数

索引空间大于数据空间是不是很糟糕?

我经常需要对没有正确索引的大表运行查询。所以我要求 DBA 创建这样的索引。他做的第一件事是查看表统计信息并查看索引空间大小。

通常他会告诉我寻找替代解决方案,因为“索引已经大于表”。他觉得索引必须比数据小,因为,他告诉我“你见过书里的索引吗?它比书本身小得多,表索引应该是这样的”。

我不认为他的哲学是正确的,但我不能挑战他,因为他是一名首席 DBA 而我是一名开发人员。我觉得如果一个查询需要一个索引,就应该创建索引,而不是寻找只会使 SP 变得不可读和不可维护的“解决方法”。

我只选择所需的列。问题是我按日期过滤,因此引擎必须进行表扫描以匹配列。该查询每天在晚上运行一次以收集统计信息,但运行需要 15 分钟(我们还有另一个硬性规定:任何过程都不应超过 3 分钟)。

DBA 向我展示了索引统计信息。该表上大约有 10 个索引,其中仅使用了 6 个(统计数据显示其中 4 个的命中率为零)。这是一个有 20 多个开发人员参与的大型系统。无论出于何种原因创建索引,可能不再使用。

我们需要支持 SQL Server 2008,因为这是运行测试数据库的。但客户都在 2014 年和 2016 年。

index sql-server

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