我有一个客户端,其 MS SQL Server 实例(2000 年、2005 年)分散在 20-30 个服务器上。我一直致力于让事情井井有条,并将定期审查数据库基础设施的健康状况、测试备份等。我们还计划在 2008 年之前获得尽可能多的这些数据库。
我知道像 New Relic for Linux 堆栈网络应用程序和数据库这样的服务,我今天通过 Google 偶然发现了 SQL Monitor 产品 (RedGate)。任何人都可以在服务或工具(您有经验的)方面提供一些指导,使我/我的客户能够监视和管理他们的 MS SQL 实例吗?
使用一组 4 列将一行标识为唯一的(一个是外键,其他三个是浮点数据类型)是一种好的做法(或者它会不会有任何不利影响)?我正在尝试构建一个表(链接 4 个键)将描述表中的唯一条目。我很好奇这是否是一个好的攻击计划,或者是否有更好的方法。
出于视觉目的,请绘制下表。我们有如下表组织的库存项目:([K]是主键的象征,线条是关系)
Sheet_Class Sheet_Type Sheet_Size
=========== ========== ==========
[K] Sheet_Class-. [K] Sheet_Type--. [K] Sheet_Size
'---- Sheet_Class '---- Sheet_Type
Length
Width
Thickness
Run Code Online (Sandbox Code Playgroud)
数据可能以下列方式呈现,但为简洁起见,我排除了引入链接列的可能性:
Sheet_Class Sheet_Type Sheet_Size (Tables)
[Sheet_Class] [Sheet_Type] [Length], [Width], [Thickness] (Column Values)
============= ============ ==============================
Aluminum
5052-H32
48, 96, 0.032
48, 96, 0.040
48, 96, 0.063
6061-T6
60, 120,0.032
60, 120,0.040
60, 120,0.063
Steel
1018-CRS
48, 96, 0.018
48, 96, 0.023
48, 96, 0.031
Run Code Online (Sandbox Code Playgroud)
就目前情况而言(并且我已经在上面的“架构”中显示),我对Sheet_Size表中的条目使用了一个简单的(自动递增)整数主键。但是,我想知道使用Sheet_Type、Length、Width和 …
我知道我们倾向于不惜一切代价避免在 SQL Server 中使用游标和循环,但是在哪些情况下您绝对需要过程查询,而基于集合的查询不会给您结果?
我了解两者之间的区别,我只是从未遇到过需要使用游标的情况。我想知道是否有这样的情况。
我正在 SQL Server Management Studio 中针对我的 SQL Server 2008 R2 Express Edition 实例。我试图了解权限是如何工作的。
我能看到的是(通过许多这些实体的属性)
然而,在那一点上,小路变冷了。架构 db_datawriter 在其属性下有一个空白的权限页面。
什么精确定义了架构 db_datawriter 的权限是什么?
SQL Server 和 Oracle 都有 DENSE_RANK 函数。有没有办法在 MongoDB 中做类似的事情而不必求助于 MapReduce?换句话说,假设您有一个像这样的 T-SQL select 子句:
SELECT DENSE_RANK() OVER(ORDER BY SomeField DESC) SomeRank
Run Code Online (Sandbox Code Playgroud)
在 MongoDB 中做同样事情的最佳方法是什么?
(注意:这是这里对MongoDB 问题的重新发布。我希望从 DBA 那里得到更多反馈......)
这可能有点含糊,但我在思考 DBA 有多少使用固定的数据库角色来控制数据库的安全性。所以问题是,是否有理由支持自定义数据库角色而不是固定数据库角色(db_datareader 等)?
可能的重复:将
数组参数传递给存储过程
假设您想通过唯一标识符列表过滤结果,以便您的 SQL 语句读取:
WHERE CustomerID in (@CustomerIDs)
Run Code Online (Sandbox Code Playgroud)
这可能吗?
编辑:
为了澄清和回答尼克的问题,我想将值列表从 C# 传递到 SQL Server,并且能够执行类似于我上面发布的 SQL 的选择。由于存在大量数据,因此这比获取比需要的更多的数据并不得不搜索它更可取。
我有一个交易表,每笔交易涉及 5-6 个联系人。每个联系人都有相同的字段,如姓名、地址、单元格、电子邮件等。
所以我猜最好的办法是使用相同的联系表并将其与事务表关联 5 次..所以我不需要制作相同类型的表 5 次。
当我与实体框架连接时,问题就开始了,这只需要一种关系。
我的问题是我应该为每种联系人类型制作 6 个联系人副本,还是使用 6 个连接表会更好(一个只有 2 个 ID 的表,所以我可以进行连接)?
我认为这是一个非常普遍的问题,但我找不到明确的信息,最好的方法是什么。
编辑: 
根据CREATE INDEX文档:
最多可以将 16 列组合成一个复合索引键。
我们有一个包含 ~18 列的表格,需要形成一个独特的组合。此表对性能不敏感——我们很少更新值/插入记录。我们只需要确保我们避免重复我们的记录......并认为我们可以强加一个简单的唯一性约束。
有任何想法吗?如果有更好的方法,我愿意完全避免使用唯一索引/约束。
从数据库进行备份时,使用逻辑备份设备作为备份位置是“好习惯”吗?使用备份设备有什么好处?
sql-server ×10
security ×2
backup ×1
constraint ×1
cursors ×1
mongodb ×1
monitoring ×1
nosql ×1
performance ×1
query ×1
schema ×1
t-sql ×1