小编Bet*_*zel的帖子

是否有“最佳实践”类型的过程供开发人员遵循以进行数据库更改?

将数据库更改从开发环境迁移到 QA 到生产环境的好方法是什么?目前我们:

  1. 在 SQL 文件中编写更改脚本并将其附加到 TFS 工作项。
  2. 工作经过同行评审
  3. 当工作准备好进行测试时,SQL 在 QA 上运行。
  4. 作品经过 QA 测试
  5. 当工作准备好进行生产时,SQL 将在生产数据库上运行。

问题在于它非常手动。如果开发人员忘记了,它依赖于开发人员记得附加 sql 或同行评审员捕获它。有时,最终发现问题的是测试人员或 QA 部署人员。

第二个问题是,如果两个单独的任务更改同一个数据库对象,您有时最终需要手动协调更改。这可能只是它的方式,但似乎仍然应该有一些“标记”这些问题或其他东西的自动方式。

我们的设置:我们的开发商店充满了具有丰富数据库经验的开发人员。我们的项目非常面向数据库。我们主要是一家 .NET 和 MS SQL 商店。目前我们正在使用 MS TFS 工作项来跟踪我们的工作。这对于代码更改非常方便,因为它将更改集链接到工作项,因此我可以准确地找出在迁移到 QA 和生产环境时需要包含哪些更改。我们目前没有使用 DB 项目,但将来可能会切换到该项目(也许这是答案的一部分)。

我非常习惯于我的源代码控制系统为我处理这样的事情,并希望我的 SQL 也有同样的事情。

sql-server-2008 process source-control

31
推荐指数
2
解决办法
1763
查看次数

命名表和视图时应该遵循什么标准?

命名表和视图时应该遵循什么标准?例如,将 tbl_ 之类的内容放在表名的开头是否是个好主意?我是否应该以某种方式指定代码/查找表,例如 ct_、lut_ 或代码_?还有其他的做/不做吗?

我正在使用 MS SQL Server 并且有许多带有许多表的数据库,所以如果有一些我们可以用作标准并带有一些支持理性的东西会很好。

naming-convention relational-theory

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

如何使用存储过程连接到另一个数据库?

我需要从外部数据库获取一些数据并在另一个数据库中使用它进行一些计算,是否可以从存储过程连接到外部数据库?谢谢你们。

附注。

我使用 Oracle 并且两个数据库都在同一台服务器上。

oracle database-link stored-procedures

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

9
推荐指数
1
解决办法
1150
查看次数

MS SQL Server 在执行查询时如何决定何时可以使用“并行性”?

MS SQL Server 在执行查询时如何决定何时可以使用“并行性”?我最近在这里发布了另一个问题,当我在查询中有 order by 时查看实际执行计划时使用了并行性,而当我没有 order by 时则没有。所以,我想知道它如何确定何时可以使用“并行性”,何时不能使用。

sql-server-2005 parallelism

7
推荐指数
1
解决办法
1064
查看次数

筛选索引是否有助于改进基于输入时间的查询,还是应该避免这种情况?

我只是在了解 MS SQL 2008 中新的过滤索引,我试图了解它们会在哪些方面造成伤害以及它们会在哪些方面有所帮助。

我可以看到向员工表添加过滤索引以仅索引当前员工将是一个好主意。

但是根据时间将几个过滤索引应用到一个大表呢?例如,假设我有一个表,它有一个 enterOn 日期/时间字段,并且该表有很多年的数据。如果查询通常是基于日期和其他一些字段(例如 enterby )完成的,那么是否有一些过滤索引具有将索引限制到时间跨度的 where 子句?在我的示例中,查询类似于

select enteredOn, Description, ...
from myTable
where enteredOn > '2011/01/01' and enteredBy = "My, User"
Run Code Online (Sandbox Code Playgroud)

每年都有一个过滤索引是合理的,还是在查询以下内容时会导致很多问题?

select enteredOn, Description, ...
from myTable
where enteredOn > '2009/06/01' and eneteredOn < '2010/06/01' and enteredBy = "My, User"
Run Code Online (Sandbox Code Playgroud)

index sql-server-2008 database-design

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

向此查询添加订单返回比不添加更快,为什么?

关于为什么向此查询添加排序的任何想法比没有 order by 的返回速度要快得多?我希望相反,那么什么会导致这种情况发生?

SELECT TOP (500) r.cID,r.aField,a.Description 
       FROM dbo.tblR r  
            inner join dbo.tblA a on r.aID = a.ID  
            left join dbo.tblX x on x.cID = r.cID 
       WHERE (ISNULL(x.anotherField,'') <> r.anotherField or x.field3 is null) 
            and (r.ID=(select max(ID) from tblR where cID = r.cID and
            ISNULL(aField,'') <> '')) 
            and r.cID in (select ID from tblC)
       ORDER BY r.cID ASC -- when I comment this line out it runs much slower
Run Code Online (Sandbox Code Playgroud)

执行计划没有多大帮助。

sql-server-2005 order-by

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