AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[best-practices](dba)

Martin Hope
Roman
Asked: 2022-11-08 04:38:23 +0800 CST

在后端选择和准备数据还是在前端进行微调?性能 | 最佳实践

  • 4

我的数据库中有一个包含事务的表,这是一个示例。

# id, user_id, type, eur_amount, usd_amount, convert_currency, convert_currency_amount, eur_exchange_rate, usd_exchange_rate, payment_source, table_source, table_source_id, package_id, package_name, deleted, date_elem, date_added, date_modified
2, 1803, membership, 60.19, 59.82, EUR, 60.19, 1.000000, 0.993912, website, users_transactions, 2, 103, 1 Monat, 0, 2022-08-22, 2022-08-22 13:03:50, 2022-11-07 11:43:25

用户可以使用过滤器按天获取付款金额。

例如,他可以请求两个日期之间的数据。

在服务器上,我可以选择两个日期之间的所有数据并将对象数组返回到前​​端。然后,前端必须遍历对象并通过将eur_amount每天的总值添加到一个总值中来创建分析。

我也可以在服务器上做所有的工作groupBy等等,所以前端不必做任何计算。

更好的做法是什么?什么性能更好?

best-practices
  • 2 个回答
  • 22 Views
Martin Hope
Chris Gonzales
Asked: 2021-02-23 09:31:32 +0800 CST

记忆优化 (OLTP) 文件的最佳实践位置是什么?

  • 1

日志和 mdf 文件的最佳实践是跨驱动器拆分(例如G:\SQL Data& I:\SQL Logs)。

内存优化文件的最佳实践是什么?他们应该住在自己的驱动器上吗?它们是否可以驻留在 Azure Temp 驱动器上(更好的 IO 性能,但重新部署时文件会丢失,tempdb 可以在此处托管)?

我仍然不清楚内存优化文件集的目的以及实际存储在那里的内容以及 IO 速率。

sql-server best-practices
  • 2 个回答
  • 108 Views
Martin Hope
Half_Duplex
Asked: 2020-03-30 15:23:18 +0800 CST

向 API 用户公开记录 ID 的最佳实践

  • 0

我正在扩展一个 API,以包括在用户创建记录后检索和更新特定记录的能力。

目前,这些记录是使用自动生成的整数键创建的,例如49300.

用户需要一种访问特定记录的方法,但我不喜欢将此 ID 公开给最终用户的想法,因为它会泄露有关我的架构的信息,例如我可以假设还有一条 ID 记录493299。

我正在考虑与自动生成的整数一起使用 GUID,但我担心性能,因为表大小约为 500 万条记录,每年增长 100 万条。

是否有理由担心在检索/更新记录时添加这个大小的表,或 GUID 上的后续 SELECT 查询?

我正在使用 AWS RDS MySQL。

谢谢!

mysql best-practices
  • 1 个回答
  • 145 Views
Martin Hope
marsisalie
Asked: 2019-12-11 09:06:45 +0800 CST

数据库结构:一张表来保存所有域值?[复制]

  • 0
这个问题在这里已经有了答案:
这个键值数据库模式有名称吗? (5 个回答)
2年前关闭。

我最近开始使用的一个数据库设计有一个包含所有可能值的主表,而其他表中的外键指定了每个项目的性质。

CREATE TABLE entity
(
     indexid INTEGER PRIMARY KEY NOT NULL,
     entitytype INTEGER,
     entityname VARCHAR,
);

例如,这个主表包含一个名为“entityname”的字段,可能包含以下记录:

  • 商品的upc代码
  • 项目的简称
  • 项目的长名称
  • 物品的位置
  • 此项目的供应商
  • 库存数量
  • (和许多其他人)

该表中的每条记录都有一个实体类型编号作为外键,在另一个表中引用每条记录的含义,例如

entitytype=10 表示这个实体是UPC码类型,然后

entitytype=12 表示该实体是供应商名称类型等...

显然,实体有十几种这样的类型。

我觉得有点不直观。这里有这篇文章(参见一个表格来保存所有域值部分),作者建议我在示例中表达的方法可能不是最好的方法,我倾向于同意他对事情。

我也认为很难进行有效的查询,我觉得这不是应该这样做的。我宁愿有更多的表格并保持整体更直观。我有一个时间窗口可以重新设计它,并且正在考虑长期和最佳实践。

那么从长远来看,这种方法可以被认为是一种好的做法,而我只需要处理它吗?

database-design best-practices
  • 1 个回答
  • 254 Views
Martin Hope
Filoo
Asked: 2019-03-29 06:57:47 +0800 CST

闪存和自动增长

  • 0

我们的(大量)SQL Server 的数据库文件(数据和日志)托管在闪存 (SAN) 上,对于大小约为 500GB(数据)和 150Gb(日志)的数据库,您会使用什么作为自动增长属性?在后台知道由于存储价格,您无法提前 5 年确定大小。附属问题:在 SSD SAN 卷上处理文件碎片仍然准确吗?

sql-server best-practices
  • 1 个回答
  • 143 Views
Martin Hope
TattooedDBA
Asked: 2019-01-24 13:43:42 +0800 CST

如何存储/组织所有这些脚本?

  • 5

我担任 DBA 角色大约 10 个月,并且已经积累了相当多的脚本集合。是否有人对如何存储所有这些脚本有任何最佳实践或建议?我管理着大约 70 个 SQL 服务器实例,并且正在寻找一种方法来快速访问所有这些脚本,因为我全天都需要它们,而现在它们只是堆积在一个文件系统文件夹中。

这是最好的方法吗?是否有第三方工具可以帮助组织它们?任何人都有一个惊人的解决方案/建议?

提前谢谢!

best-practices
  • 3 个回答
  • 1626 Views
Martin Hope
N4v
Asked: 2018-05-02 05:29:54 +0800 CST

在存储过程中使用临时表的最佳实践

  • 2

我最近开发了一个存储过程,它基本上从几个不同的表中查询数据,对其进行操作,然后将结果插入到某个表中。

它最终成为一个包含许多子查询的 INSERT 语句,大约 300 行。代码非常高效;但是,它的可读性不是很好,可能还有其他缺点。

编写这样的查询是否在推荐使用范围内:

SELECT ...
INTO #tempfoo
FROM foo;

SELECT ...
INTO #tempbar
FROM bar;

SELECT ...
FROM #tempfoo
     INNER JOIN #tempbar ON #tempfoo.id = #tempbar.id;

还是这样写更好,即使它可能变得有些不可读:

SELECT ...
FROM
(
    SELECT ...
    FROM foo
) AS foo
INNER JOIN
(
    SELECT ...
    FROM bar
) AS bar ON foo.id = bar.id;

注意:我知道这是一个简单的示例,但想象一下,如果您有嵌套子查询层和四个或更多表连接。

sql-server best-practices
  • 1 个回答
  • 10675 Views
Martin Hope
Solomon Rutzky
Asked: 2018-01-11 12:38:08 +0800 CST

如果没有卸载计划,是否可以删除 Setup Bootstrap 文件夹中的 Log 和 Update Cache 文件夹?

  • 12

我有几个版本的 SQL Server,用于测试,安装在我的笔记本电脑上(2012、2014、2016 和 2017)。前几天我注意到有一个文件夹包含跨更新(SP、CU)的文件的早期版本。在所有版本中,实际上占用了相当多的空间:

(在C:\Program Files (x86)\Microsoft SQL Server\中)

110\Setup Bootstrap\Log - 91.8 MB (818 files)
110\Setup Bootstrap\Update Cache - 608 MB (2,382 files)

(下面的所有文件夹都位于:C:\Program Files\Microsoft SQL Server\)

110\Setup Bootstrap\Log - 1.18 GB (3,715 files)
110\Setup Bootstrap\Update Cache - 9.58 GB (14,766 files)

120\Setup Bootstrap\Log - 569 MB (2,963 files)
120\Setup Bootstrap\Update Cache - 5.74 GB (12,797 files)

130\Setup Bootstrap\Log - 448 MB (2,808 files)
130\Setup Bootstrap\Update Cache - 3.84 GB (8,579 files)

140\Setup Bootstrap\Log - 84.3 MB (687 files)
140\Setup Bootstrap\Update Cache - 937 MB (1,571 Files)

这些文件夹的总数为(MB 已标准化为 GB):

Folder          GB          Files
----------     -----        ------
Log             2.35        10,991
Update Cache   20.66        40,095

TOTAL          23.01        51,086

最初我认为删除Log和Update Cache文件夹应该是安全的,但后来我认为最好先检查一下其他人是否问过这个问题,如果是,答案是什么。我找到了这篇知识库文章:

SQL Server 中更新缓存文件夹的说明

其中指出:

如果您删除此文件夹或删除其内容会怎样?

如果从该文件夹中删除了 Update Cache 文件夹或某些修补程序,则不能再卸载 SQL Server 实例的更新,然后再恢复到较早的更新版本。在这种情况下,添加/删除程序条目指向不存在的二进制文件,因此卸载过程不起作用。因此,Microsoft 强烈建议您保持文件夹及其内容的完整性。

好的。我没有降级或卸载 SP 或 CU 的计划,所以我应该没问题,对吧?好吧,还有其他参考资料,例如这个:

删除“更新缓存”文件夹是否安全?

其中有人引用了以下知识库文章:

如何还原丢失的 Windows Installer 缓存文件并解决 SQL Server 更新期间出现的问题

其中指出(强调):

安装 SQL Server 时,Windows Installer 将关键文件存储在 Windows Installer 缓存中(默认为 C:\Windows\Installer)。卸载和更新应用程序需要这些文件。

现在,这篇特定的文章似乎特定于C:\Windows\Installer文件夹,我不是在谈论从该文件夹中删除。尽管如此,由于提到了无法应用更新的可能性,我首先想要更多信息。

以前有没有人删除过这些文件夹,或者至少只是删除了它们的内容?如果是这样,是否有任何负面影响?这些文件夹只会增加。我刚刚为所有四个版本应用了“Spectre / Meltdown”补丁,总数增加了 3.65 GB 和 6,900 个文件(最终结果如上图所示)。

需要明确的是,我不是在寻找是否应该删除这些文件夹中的一个或两个;我正在寻找我是否可以删除一个或两个(除了卸载/降级的能力之外,我已经接受了这一点)。

sql-server best-practices
  • 2 个回答
  • 9805 Views
Martin Hope
krystah
Asked: 2017-07-25 02:16:29 +0800 CST

为什么在单个数据库中混合列排序规则被认为是不好的?

  • 11

有两个原因促使我提出这个问题:

tSQLt当存在具有非默认排序规则的列时,
T-SQL 测试框架 tSQLt 将其视为“高严重性”问题。测试的作者陈述如下:

我并不是建议每个字符串列都应该有一个与数据库的默认排序规则相匹配的排序规则。相反,我建议当它不同时,应该有一个很好的理由。

然而,如前所述,失败测试的严重性被认为是高的。

Octopus Deploy
在配置 Octopus Deploy Server 时,在 OctopusServer-instance 初始化期间设置失败并出现致命错误。与错误消息相关的文章没有解释为什么这是一个要求,而只是说明它将是未来部署的要求,从并包括 Octopus 版本 3.8。

作为旁注,RedGate 的 CI 工具包DLM 自动化套件支持具有不同排序规则的部署,而不会引起任何抱怨。

将所有列排序规则保留为数据库默认值的建议对我来说更像是指导方针或最佳实践。为什么有些人认为这是一个如此严重的错误?

sql-server best-practices
  • 4 个回答
  • 2350 Views
Martin Hope
Gunnar Norred
Asked: 2017-06-22 12:39:46 +0800 CST

我将如何跟踪数据库中的所有价格变化,以便在“y”日期获得“x”产品的价格

  • 9

我需要跟踪产品价格变化,以便我可以在给定日期查询数据库以获取产品价格。该信息用于计算历史审计的系统中,因此它必须根据购买日期返回正确产品的正确价格。

我更喜欢在构建数据库时使用 postgres。

我需要数据库的设计,但也欢迎任何和所有最佳实践建议。

database-design best-practices
  • 3 个回答
  • 7777 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve