274得票7回答
在什么情况下,我应该使用唯一约束而不是唯一索引?

当我想让一列具有不同的值时,我可以使用约束。 create table t1( id int primary key, code varchar(10) unique NULL ); go 或者我可以使用一个唯一索引 create table t2( id int primary ke...

208得票5回答
为用户授予对所有表的访问权限

我对Postgres还不熟悉,正在尝试迁移我们的MySQL数据库。在MySQL中,我可以授予低权限用户SELECT、UPDATE、INSERT和DELETE权限,并使这些授权适用于指定数据库中的所有表。在Postgres中,我可能遗漏了一些东西,因为看起来我必须逐个表授予这些权限。对于每个数据...

176得票19回答
开发人员是否应该能够查询生产数据库?

开发人员是否应该被允许查询(SELECT / 只读)生产数据库?我之前工作的地方,开发团队拥有db_datareader角色;而我现在的工作地方,开发团队甚至无法连接到生产实例。 其中一个测试实例是每周从生产备份中恢复的生产副本,所以开发人员实际上看不到数据方面的任何问题。 除了不希望他们...

119得票3回答
每次都创建事务是一种不好的做法吗?

总是创建事务是一种不好的做法吗? 举个例子,为了仅仅执行一个简单的 SELECT,创建事务是一种好的做法吗? 当事务并非真正必要时,创建事务会带来多大的成本呢? 即使你使用了像 READ UNCOMMITTED 这样的隔离级别,这是否也是一种不好的做法?

104得票18回答
给表名添加'tbl'前缀真的是个问题吗?

我正在观看一些Brent Ozar的视频(例如这个),他建议不要在表名前加上“tbl”或“TBL”。 在互联网上,我找到了一些博客说这对文档没有任何帮助,而且“阅读起来更费时间”。 问题和考虑: - 这真的是个问题吗?因为自从我第一份数据库管理工作开始,我就一直在给表名加上“tbl”前缀...

73得票4回答
功能表现

从MySQL的背景来看,存储过程 性能(旧文章) 和 可用性 都有问题,我正在评估是否在我的公司的新产品中使用PostgreSQL。 我想做的其中一件事是将一些 应用逻辑 移入存储过程中,所以我在这里询问关于在PostgreSQL(9.0)中使用函数时的做和不做(最佳实践),尤其是与性能陷阱...

59得票1回答
在不中断服务的情况下,对实时数据库进行模式更改和数据迁移的最佳实践是什么?

如何在不停机的情况下对实时数据库进行模式更改? 例如,假设我有一个包含各种用户数据(如电子邮件地址等)以及与特定用户关联的表的PostgreSQL数据库。如果我想将电子邮件地址移动到一个新的专用表中,我需要更改模式,然后将电子邮件数据迁移到新表中。如何在不停止对原始表的写入的情况下完成这个过...

51得票5回答
SQL Server维护计划 - 任务和调度的最佳实践

我被委托制定我们的 Sql Server 2005 数据库的维护计划。对于备份,我希望每天进行完整数据库备份,并且每隔15分钟进行事务日志备份。但是,我遇到了一个问题,即确定其他任务和执行频率。 目前我考虑的方案如下,请纠正我思考中的任何错误或更好的做法。 备份 - 所有表格,完整备份(...

46得票12回答
如何让数据库管理员更加“友好”于程序员?

对于问题"在数据库层中放置应用逻辑的论据是什么?"的dba.se版和programmers.se版上的答案和评论,揭示了DBA和程序员在某些工作场所之间的分歧。 DBA应该如何与程序员在这类问题上更好地合作呢? 我们应该: 学习我们的程序员使用的工具和语言,以理解他们面临的困难,尤其是...

44得票5回答
存储过程的单元测试

我已经考虑了很长时间了。 基本问题是:如何对存储过程进行单元测试? 我发现相对容易为经典意义上的函数设置单元测试(我的意思是它们接收零个或多个参数并返回一个值)。但是,如果我考虑一个看似简单的实际例子,比如在某处插入一行的存储过程,还有几个触发器在插入之前或之后做这样那样的事情,甚至定义一...