在我的收藏中,我的文档似乎比较相似。我需要知道我的生产服务器需要多少存储空间来存储我的文档,这就是我查询的原因:
db.collectionName.stats()
Run Code Online (Sandbox Code Playgroud)
我的字段 avgObjSize 大约为 6442 字节。我在我的收藏中选择了一个随机文档,我输入:
Object.bsonsize(db.collectionName.find({"_id" : ObjectId("5508497c51a990da07b07106")}))
Run Code Online (Sandbox Code Playgroud)
我获得了 810 个字节。
为什么我有这么大的差异?
我还注意到,我存储的文档越多,avgObjSize 减少的越多……这正常吗?(我查过,我的文件不是空的。)
它是一个开发服务器,所以我使用的是 Red Hat Enterprise Linux 5.8,它是一个 32 位版本。
我有一个测试环境,我在其中安排了运行还原测试和 DBCC 检查的作业。这些作业运行到:
1)从产品复制数据库备份。
2)DROP除dba_utility
3) 恢复备份之外的所有现有数据库
4) 运行dbcc checkdb
我经常得到:
Time-out occurred while waiting for buffer latch type 2 for page (1:3564879), database ID 7.
Run Code Online (Sandbox Code Playgroud)
奇怪的是,没有带有Idof 的数据库7。
Maximum Id在sys.databases目录视图中是 6。(请记住,DROP还原操作之前的所有数据库作业,除了dba_utility其Id=5。新还原的数据库分配的 ID 为 6。)
生产环境为2008 R2,测试环境为2012 SP1。
这可能是什么原因造成的?
& 在下面的查询中表示什么?它的意义是什么?
select id, name
from test
where num & 1 = 1;
Run Code Online (Sandbox Code Playgroud) 对于未来的项目,我需要使用以下设置:
一些小的(离线)数据框(随着时间的推移收集数据)填满了 PostgreSQL 数据库(大约1 TB a year总共)。
有时,我有机会将数据从这些盒子中移出(到棒或移动驱动器上)并将其导入到庞大的企业 Oracle 数据库中。
到目前为止,这希望不是一个非常糟糕的解决方案。目前,我正在寻找准备好以后易于使用的东西。
有没有人做过这样的事情?
我们有一个针对大型表的本地更新统计作业,它基本上发出 UPDATE STATS 命令。从历史上看,我们一直默认使用 FULL SCAN,但最近我们切换到 SAMPLE 50 PERCENT。奇怪的是,update stats 命令的运行时间要高得多。
举个例子,我们有表 1,它有 6 个统计信息(3 个索引,3 个自动生成)。聚集索引为 1.2 TB;NCI 1 为 2.7 GB;NCI 2 为 2.6 GB
1 个月前使用 FULL SCAN 更新了表上的统计信息,该命令耗时 96 分钟。昨晚更新了统计数据,SAMPLE 50 PERCENT,命令耗时 593 分钟!两次运行之间的表行数大致相同。
我可以从 sys.dm_db_stats_properties 看到聚集索引只占用了 4 分钟的时间。我的问题是,为什么将采样率降低 50% 会导致命令运行时间延长近 5 倍?
命令运行时没有发生任何阻塞(根据 SQL Sentry),也没有任何资源瓶颈(CPU < 40%,IO 延迟 < 10 by-in-large)。
我想知道的一件事是并行性是否在起作用 - 使用完整扫描,SQL 可以使用并行性,但使用示例 % 它是单线程的吗?
我们正在运行 SQL 2012 SP2 CU7
来宾用户在我们的用户数据库上被禁用,但数据安全人员希望我们也在系统数据库上禁用它。我应该这样做吗?
我正在尝试通过脚本安装示例数据库。我试过酒吧、北风和现在的冒险工作。我有很多错误。我在这里发帖是因为我相信我做错了什么。我假设 Adventureworks 的安装脚本已正确编写脚本,但我仍然收到很多错误消息,例如
> Msg 102, Level 15, State 1, Line 39
Incorrect syntax near ':'.
Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)
Aug 22 2017 17:04:49
Copyright (C) 2017 Microsoft Corporation
Developer Edition (64-bit) on Windows 10 Home 10.0 <X64> (Build 17134: )
Started - 2018-07-07 15:15:49.647
*** Dropping Database
Msg 102, Level 15, State 1, Line 3
Incorrect syntax near '$'.
*** Creating Database
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '$'.
Run Code Online (Sandbox Code Playgroud) 我想从一个模式 schema1 中获取数据并将其放入模式 2 这应该很容易做到,但我已经搜索了 oracle 文档,但找不到办法做到这一点。
我有一个物化视图。我想创建它的副本,以便我可以修改一些数据来测试有关问题及其可能解决方案的一些理论。
如何将此 MV 复制为表格?该副本将驻留在同一架构中,但具有不同的名称。该副本应该是 MV 的相同副本(结构和数据),它只是一个表格,因此我编辑数据。
我想在 Oracle 11g 中运行这个 SQL:
declare a number;
begin
select count(*) into a from item w where w.Item_num='MOH601' ;
dbms_output.put_line(a);
end ;
Run Code Online (Sandbox Code Playgroud)
如何使用隔离可序列化运行此查询?正如我之前所了解的,Oracle 会w.Item_num='MOH601'在使用 Serializable 时锁定行。
oracle oracle-11g transaction isolation-level plsql-developer
我正在尝试编写一个查询,以通过 payment_method(表中的列之一)和日期来提取组数据。我可以在不按日期分组的情况下提取查询,但是一旦我添加了日期,我就无法使查询工作。有谁知道如何解决我的查询?
当前查询:
SELECT payment_method,SUM(net_amount)
DATEADD(MONTH, DATEDIFF(MONTH, 0, transaction_time),0) as OrderDateByMonth
FROM Database
WHERE [criteria]
GROUP BY payment_method
AND DATEADD(MONTH, DATEDIFF(MONTH, 0, transaction_time),0)
ORDER BY payment_method
AND OrderDateByMonth
Run Code Online (Sandbox Code Playgroud) 我有一个使用 C# 发布的 SQL Server 表。我希望使用 Id 对字段进行排序。相反,我得到了这样的东西:

我需要按照编号递增的顺序排列 id 列,因为我使用 C# 中的数据表一次遍历这些值,因此从 7 到 9 再到 11 再跳到 8 非常不方便。
注意:我不是在谈论 select * from table_name order by id。我需要按照请求的顺序“永久存储”这些值。
sql-server ×6
oracle ×4
c# ×1
dbcc-checkdb ×1
dump ×1
expdp ×1
impdp ×1
migration ×1
mongodb ×1
oracle-11g ×1
postgresql ×1
size ×1
statistics ×1
storage ×1
t-sql ×1
transaction ×1
users ×1
windows ×1