在我们的 SQL Server 2014 实例之一上,根据 sys.dm_exec_cached_plans 用于缓存计划的内存量与根据 sys.dm_os_memory_clerks 查看 CACHESTORE_SQLCP 类型(我理解)的内存量之间存在奇怪的差异用于即席查询缓存计划)。
如果我们查询缓存计划如下:
select cp.cacheobjtype, cp.objtype,
sum(cast(cp.size_in_bytes as money))/1024/1024 as sizeMB
from sys.dm_exec_cached_plans as cp
group by cp.cacheobjtype, cp.objtype;
Run Code Online (Sandbox Code Playgroud)
那么我们似乎总共有大约 90 MB 用于缓存计划,只有 2MB 用于临时计划。缓存中也只有 300 个计划。
但是,如果我们查看 dm_os_memory_clerks 视图如下:
select mc.type, mc.pages_kb/1024 as pagesMB
from sys.dm_os_memory_clerks as mc
where mc.type = 'CACHESTORE_SQLCP'
Run Code Online (Sandbox Code Playgroud)
然后它报告大约使用了 12 GB。我们的实例有大约。其中有 300 GB 的 RAM。
我们想了解这种差异,并在理想情况下采取一些措施来确保计划缓存得到有效使用(即其中有 300 多个计划以提高目前非常差的缓存命中率)。能够考虑这个空间将是第一步。
关于差异可能是什么以及为什么这个空间不被用于缓存计划的任何想法?
我在 Postgres 中有一个物化视图,想知道刷新该视图时取出了哪些锁(如果有)。
CREATE TABLE people ( name VARCHAR(30) );
INSERT INTO people VALUES ('Alice'), ('Bob'), ('Cher');
CREATE MATERIALIZED VIEW test AS SELECT * FROM people;
REFRESH MATERIALIZED VIEW test;
Run Code Online (Sandbox Code Playgroud)
具体来说,我试图了解该REFRESH MATERIALIZED VIEW
命令是否取出ACCESS EXCLUSIVE
锁。
我尝试了一个解释但没有成功:
#> EXPLAIN REFRESH MATERIALIZED VIEW test;
QUERY PLAN
-------------------------------------------
Utility statements have no plan structure
Run Code Online (Sandbox Code Playgroud) 在 MongoDB shell 中,如何查看我正在使用的当前数据库的特定集合中的所有文档?
当我尝试查询时
> db.getCollection().find()
Run Code Online (Sandbox Code Playgroud)
要获得如下所述的错误
2017-10-14T00:57:34.363+0530 E QUERY [thread1] Error: collection constructor called with undefined argument :
DB.prototype.getCollection@src/mongo/shell/db.js:34:16
@(shell):1:1
Run Code Online (Sandbox Code Playgroud)
我也在此处上传 mongo shell 命令提示符的屏幕截图
我们考虑从主从转移到MongoDB
with replica-set
。现在我想知道MongoDB
副本是否也像主-主农场一样设置,read-only slaves
或者每个副本是否都mongos
能够写入和同步其他副本?
这可能会减少单一错误源 ( master down
) 并平衡write-load
缩放与最佳性能(不仅对于读取,而且对于写入...)。
这在日志中每晚出现几次。如何找到导致问题的查询?SQL Server 2008 R2 Sp1。
我读过某个MongoDB
持有数据库级写锁的地方,这是否意味着当有人更新任何collection
其他人时不允许读取其他人collection
或它是如何工作的。此外,当有人向数据库写入任何内容时,如何MongoDB
获取写锁以及它的粒度是多少?
我想在单用户模式下启动我的 SQL Server Express 实例来执行一些故障排除,例如恢复 Master 数据库。
我在 SQL Server 配置管理器中找不到“启动参数”选项。
我发现了一些博客,例如http://mssqlfun.com/2014/09/04/how-to-start-sql-server-in-single-user-mode/,但是我无法将-m
参数添加到'启动参数'。
请参阅下面的我的 SQL Server 配置管理器的屏幕截图:
我的工作环境是:
有没有可能通过控制台连接的方法?任何想法或建议将不胜感激。
我可以从这个 T-SQL 中看到启动参数:'select * from sys.dm_server_registry;',但是我看不到 SQL Server 配置管理器中的设置。
我可以将 MongoDB 启动为$sudo service mongod start
. 当我开始时没有sudo
它给我这个错误:
/etc/init.d/mongod: line 58: ulimit: open files: cannot modify limit: Operation not permitted
/etc/init.d/mongod: line 60: ulimit: max user processes: cannot modify limit: Operation not permitted
Starting mongod: runuser: may not be used by non-root users
Run Code Online (Sandbox Code Playgroud)
1)现在,我已将所有权更改为我能找到的所有 mongo 目录上的非 root 用户,即/var/lib/mongo
,,,,var/log/mongodb
data/db
var/run/mongodb
$sudo chown -R nonRootUser:nonRootUser [directory]
Run Code Online (Sandbox Code Playgroud)
2)我删除了mongod.lock
文件
--repair
3)我也跑过
它仍然给我同样的错误。
我也尝试过
$mongod --fork --logpath /var/log/mongodb.log
about to fork child process, waiting until server …
Run Code Online (Sandbox Code Playgroud) 我想运行,mongodump
以便它只输出错误(以避免自动夜间备份脚本的无关日志监视报告)。
我已经尝试过,mongodump --quiet
但是通过快速测试,这也抑制了错误消息(未经许可在根文件夹中运行它会抑制我没有得到的“错误创建目录”消息--quiet
)。
我如何只得到错误输出mongodump
?
这是我在没有运行时遇到的错误,--quiet
但我没有得到--quiet
:
2016-04-17T13:50:26.294-0400 失败:错误转储元数据:为元数据文件转储/234-watchdog 创建目录时出错:mkdir 转储:权限被拒绝
MongoDB 在 Ubuntu 上运行。我明白为什么会发生这个错误。我希望这样的错误不会被--quiet
选项抑制。
我有以下示例文档:
{
"_id" : ObjectId("556e177ca43da29e040041a7"),
"user_id" : NumberLong(24),
"request_datetime" : ISODate("2015-06-02T15:52:12.000-05:00"),
"total_amount" : 102.62,
"status" : NumberLong(1),
"adfields" : {
"27" : "413703562015060200132",
"28" : "S003POS4",
"29" : "HAYLEYS",
"30" : "1"
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我需要索引“adfields”属性,但它不适用于“多键”索引类型,也不使用“单字段索引”。我尝试使用单个字段索引来索引adfields属性,但是当我查询adfields.27的特定值时,它不使用索引。我无法为adfields.27创建单个字段索引,因为这些数字是动态创建的。
您知道如何执行此操作吗?多谢。
mongodb ×6
sql-server ×3
amazon-ec2 ×1
dmv ×1
index ×1
linux ×1
mongodb-3.4 ×1
postgresql ×1
replication ×1
startup ×1