我读过 DBA 永远不应以系统用户身份登录数据库。这让我想知道... DBA 应该如何登录到数据库?他/她是否应该创建一个 DBA 帐户并将其用于登录目的?但我认为这与 login as system 相同。或者他应该以该模式的所有者身份登录到每个模式?
请注意:我的 Access 副本是荷兰语,因此任何英文部分都是从荷兰语翻译而来的。
我目前正在使用 SQL 在 Access 中处理数据库,练习是:
创建一个查询,列出所有罚款超过 25 欧元的学生。
我创建了这个查询:
SELECT L.LLNR, U.LLNR, L.VOORNAAM, L.TUSSENVOEGSEL, L.ACHTERNAAM, SUM(U.BOETE)
FROM
LEERLINGEN L
INNER JOIN UITLENINGEN U ON L.LLNR = U.LLNR
WHERE (((U.BOETE)>25));
Run Code Online (Sandbox Code Playgroud)
当我单击时Execute,出现以下错误(从荷兰语翻译)
您正在尝试执行一个查询,其中所选表达式 LLNR 不是统计函数的一部分。
我该怎么办?
翻译: | Leerlingen = 学生 | Boete = 点球 |
我在为 max(datetime) 记录选择其他列时遇到问题。通俗地说,我需要获取相关列,其中 max(DialDateTime) 记录 Mysql 中的所有日期。
mysql> select max(DialDateTime) as max from log_AP group by date(DialDateTime) ;
+---------------------+
| max |
+---------------------+
| 2012-12-03 07:37:26 |
| 2012-12-04 07:37:04 |
| 2012-12-05 07:37:04 |
| 2012-12-06 07:37:04 |
| 2012-12-07 07:37:04 |
| 2012-12-08 07:37:04 |
| 2012-12-09 07:37:04 |
+---------------------+
Run Code Online (Sandbox Code Playgroud)
7 行(0.00 秒)
我有一些表可以从Postgres SQL 中的CLUSTER ON/CLUSTER USING中受益匪浅:
# CLUSTER table USING index_name;
# ANALYZE VERBOSE table;
# CLUSTER VERBOSE;
Run Code Online (Sandbox Code Playgroud)
维护任务会定期运行 CLUSTER VERBOSE 以保持最新状态。但是,在运行 CLUSTER VERBOSE 之前,是否可以运行测试来查看表的碎片化程度?也许是这样的:
# CLUSTER ANALYZE
table 40000 records. 4000 observed clusters, 5000 potential clusters (20% fragmentation)
Run Code Online (Sandbox Code Playgroud)
请注意,我使用 CLUSTER,因此同时访问的数据被“整理”为少量磁盘块。例如,每个页面都有数千个属性。aCLUSTER page_attribute USING page_id;将所有属性放在一起,大大减少了磁盘负载。
我有一张user表,用varchar作主键。现在从另一个地方我得到了int比varchar主键更好的性能提示。
所以我想将我的主键更改为int. 为此,我创建了另一个user表并将数据复制到该表中,但先前的主键值除外。
到此为止没有问题。
现在我的问题是我有很多表,它们user通过以前的主键与表相关。现在我想将其他表的行与新的主键值相关联。
这该怎么做?
我正在运行带有 postgres/postgis 设置的 Ubuntu 14.04,并在一个微弱的时刻删除了 PostgreSQL 9.1(在我升级到 14.04 之前似乎是从 12.04 安装的遗留安装),错误地说服自己我当前的 postgis 设置仅依赖于 9.3。
事实并非如此,更糟糕的是,我在实例运行时将其删除,因此我前往存储库恢复 9.1。
Ubuntu 的存储库没有 14.04 的 PostgreSQL 9.1,所以我从源代码编译,这样我就可以运行 pg_dump 或 pg_upgrade,这需要两者的二进制文件。
但是我当时的问题是,仅仅因为我现在又有了 9.1 的工作版本,这并没有使我的数据库从早期可见。
因此,据我所知,我的数据库文件完好无损,但我需要将它们与我今天安装的新 9.1 服务“挂钩”。我希望它是微不足道的,但它让我难住了几个小时。关于从哪里开始更新配置的任何指示?
出于某种原因,Postgres 似乎没有使用我们创建的索引。这是我正在测试的查询:
SELECT "public"."influencers".*
FROM "public"."influencers"
WHERE (ig -> 'id' @> '"4878142508"')
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
运行后EXPLAIN:
-> Seq Scan on influencers (cost=0.00..32800.14 rows=216 width=1110)
Run Code Online (Sandbox Code Playgroud)
这表明(如我所见)没有使用索引。
这是我们创建的数据库和索引:
CREATE TABLE public.influencers
(
id integer NOT NULL DEFAULT nextval('influencers_id_seq'::regclass),
location jsonb,
gender text COLLATE pg_catalog."default",
birthdate timestamp without time zone,
ig jsonb,
contact_info jsonb,
created_at timestamp without time zone DEFAULT now(),
updated_at timestamp without time zone DEFAULT now(),
categories text[] COLLATE pg_catalog."default",
search_field text COLLATE pg_catalog."default",
search_vector tsvector,
ig_updated_at timestamp without time …Run Code Online (Sandbox Code Playgroud) 如何检查 PostgreSQL 9.1 中的碎片?
我想找出 MySQL 中两个表的不匹配记录。
postgresql ×5
mysql ×3
datetime ×1
innodb ×1
json ×1
migration ×1
ms-access ×1
mysql-5.6 ×1
optimization ×1
oracle ×1
performance ×1
primary-key ×1
storage ×1
sysdba ×1