可能的重复:
为什么使用 int 作为查找表的主键?
到目前为止,我习惯于为每个表创建一个 ID 列,它的实用性使我不必考虑有关主键理论的决策。
我大学的教授建议全班从一个或多个字段制作主键,这些字段构成关于每一列的一个唯一信息。是的,我想养成使用自然键而不是代理键的习惯。维基百科上列出了代理键的优缺点,我严格推荐这篇文章
我见过人们对所有内容都使用整数 ID 字段,但没有人评判这种方法,因为
我开始认为额外的 ID 字段只是创建冗余数据而没有实际好处。那么当我可以使用其他列作为关键字段时,为什么还要创建 ID 列呢?

另一方面
额外资源:
我从阅读文章中得出的结论是,我应该尽可能使用自然键,而不是每次都跳过考虑自然键并使用代理键,好像这是一个标准。
我当前的项目将不断向 sql 服务器发送查询,它可能会使用 100% 的内存或 CPU。
如何在存储过程中检查服务器是否接近充分利用,以便我可以决定是否执行查询或将某些设置保存在表中,以便以下查询可以知道工作负载很高并决定要做什么
如果没有,如何防止 SQL Server 达到充分利用?
有关案例的更多信息:现在我知道我们当前的测试服务器每秒可以处理 40-50 个查询(一个特定的存储过程)。现在我们将决定每秒向服务器发送多少查询。如果我们设置的数量比预期的还要高 1,从长远来看,查询最终会填满虚拟内存,客户端将不得不定期重新启动他们的 sql server 实例。
预期结果(赏金猎人):
@memory_usage float, @cpu_usage float; /* in percentage */
Run Code Online (Sandbox Code Playgroud)
欢迎任何想法。谢谢。
对不起,这听起来很愚蠢,但我一直想知道在虚拟化时代之前多个数据库是如何自动化的。DB Adminsitrator 可以创建一个存储过程来从远程 RDBMS 获取数据并将它们选择到本地表中吗?
是不是可以通过虚拟化来扩展数据库服务器,就像永远一样?我喜欢将大部分工作负载保留在数据库服务器上,因为它优化了查询,并且该架构减少了 db 服务器和 web 服务器之间的带宽使用。有什么理由我不应该在可扩展性方面这样做吗?
sql-server ×3
architecture ×1
mysql ×1
oracle ×1
primary-key ×1
rdbms ×1
remote ×1
scalability ×1
select ×1