小编dez*_*zso的帖子

如何查询正在运行的 pg_hba 配置?

我想pg_hba.conf在发出复制启动命令之前测试提供者是否授权了复制连接,但不知道如何。(我可以访问两个节点上的 unix 和 postgresql shell)

对于非复制连接,我将psql使用类似的连接字符串进行连接'host=$MASTER_IP port=5432 dbname=$DATABASE user=$DBUSER password=$DBPASSWORD'

上下文: 我正在编写一个脚本来自动设置服务器之间的复制,并且服务器的配置通过不同的系统/存储库(遗留原因)进行管理。因此,我想测试每一步的设置是否正确。

postgresql replication pg-hba.conf

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

如何在不等待结果的情况下从 psql 执行查询?

我的查询(从现有表创建新表)需要很长时间。所以我在我的办公室建立了一个远程数据库——那里有更多的内存。

我可以像往常一样使用 psql 从家里连接到我的数据库。

如何告诉远程服务器从终端执行我的查询而不必等待响应?

(postgresql-9.2 , linux 环境)

编辑:我对其他解决方案持开放态度,没有必要使用 psql

postgresql psql

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

如何以及何时在 oracle 中使用 sys_refcursor

有人可以给我一个关于如何以及何时使用 sys_refcursor 的小解释吗?

oracle oracle-11g

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

合并两个具有不同 WHERE 子句的 SELECT 查询

我有一张服务表。我需要合并两个 SELECT 查询。两者都有不同的 where 子句。例如

SELECT 
  U_REGN as 'Region', 
  COUNT(callID) as 'OpenServices',
  SUM(CASE WHEN descrption LIKE '%DFC%' THEN 1 ELSE 0 END) 'DFC'
FROM OSCL
WHERE     
  ([status] = - 3) 
GROUP BY 
  U_REGN
ORDER BY 
  'OpenServices' desc
Run Code Online (Sandbox Code Playgroud)

这给了我结果

Region    | OpenServices | DFC
Karaci    | 14           | 4
Lahore    | 13           | 3
Islamabad | 10           | 4
Run Code Online (Sandbox Code Playgroud)

我还有一个疑问

SELECT 
  U_REGN as 'Region', 
  COUNT(callID) as 'ClosedYesterday'
FROM OSCL
WHERE 
  DATEDIFF(day, closeDate, GETDATE()) = 1
GROUP BY 
  U_REGN
ORDER BY 
  'ClosedYesterday' …
Run Code Online (Sandbox Code Playgroud)

sql-server

10
推荐指数
2
解决办法
25万
查看次数

是否有远程访问 PostgreSQL 数据库的超时选项?

我正在通过pgAdmin III 在远程 PostgreSQL 数据库上工作。在没有在 pgAdmin 中做任何事情的不长一段时间(比如 10-15 分钟)之后,连接会自动过期。因此,我收到一条错误消息,询问我是否要重新连接。这大约需要 10 秒。并且数据库结构崩溃了,所以我必须重新打开我之前打开的模式。

有没有办法在某处更改超时参数,以防止连接过期更长时间?

postgresql pgadmin postgresql-9.2 connectivity

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

使用外键约束从 pg_dump 恢复

在从 恢复数据库时pg_dump,会产生许多错误,随后整个表都会被忽略。一个例子:

ERROR:  insert or update on table "channelproducts" violates foreign key constraint "fk_rails_dfaae373a5"
DETAIL:  Key (channel_id)=(1) is not present in table "channels".
Run Code Online (Sandbox Code Playgroud)

有趣的是,我注意到所有这些实例都是由于加载顺序而弹出的。channelschannelproducts按字母顺序和在文件中之后,因此我可以理解为什么 postgres 抱怨必须创建一个没有父母的孩子。

警告:外键是由 rails 4.2 自动生成的:我可以从源头上删除问题,但这仍然没有真正解决问题......

版本:PostgreSQL 9.4.4。

psql如果已经创建了数据库表和列,那么如何从外键约束的情况中恢复?

postgresql foreign-key restore pg-dump postgresql-9.4

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

行可见性究竟是如何确定的?

在最简单的情况下,当我们向表中插入新行(并且事务提交)时,它将对所有后续事务可见。请参阅xmax此示例中的 0:

CREATE TABLE vis (
  id serial,
  is_active boolean
);

INSERT INTO vis (is_active) VALUES (FALSE);

SELECT ctid, xmin, xmax, * FROM vis;

  ctid ?xmin ? xmax ? id ? is_active 
?????????????????????????????????????
 (0,1) ?2699 ?    0 ?  1 ? f
Run Code Online (Sandbox Code Playgroud)

当我们更新它时(因为该标志是FALSE偶然设置的),它会发生一些变化:

UPDATE vis SET is_active = TRUE;

SELECT ctid, xmin, xmax, * FROM vis;

 ctid ? xmin ? xmax ? id ? is_active 
?????????????????????????????????????
(0,2) ? 2700 ?    0 ?  1 ? t
Run Code Online (Sandbox Code Playgroud)

根据PostgreSQL 使用的 …

postgresql transaction-log mvcc

10
推荐指数
2
解决办法
899
查看次数

在 PostgreSQL 中,行顺序是否保留在函数和 CTE 中?

在 SELECT 语句中,如果未指定 ORDER BY 子句,则不能保证返回行的顺序。这适用于“普通”表。

对于使用 WITH 表达式 (CTE) 生成的有序表也是如此吗?函数返回的有序表?我认为不是。这是文档中明确说明的地方吗?

具体来说,我可以假设这个(更有效的)查询:

WITH ordered AS ( SELECT * FROM table1 ORDER BY col1 )
SELECT sum(col2) result FROM
generate_series(0,50) nr,
LATERAL (SELECT * FROM ordered LIMIT 100 OFFSET nr*100) a
GROUP BY nr ORDER BY nr;
Run Code Online (Sandbox Code Playgroud)

将等同于这个查询:

SELECT sum(col2) result FROM
generate_series(0,50) nr,
LATERAL (SELECT * FROM table1 ORDER BY col1 LIMIT 100 OFFSET nr*100) a
GROUP BY nr ORDER BY nr;
Run Code Online (Sandbox Code Playgroud)

对于函数:

如果我有这样的功能:

CREATE FUNCTION do_sort(name text[]) RETURNS TABLE(name …
Run Code Online (Sandbox Code Playgroud)

postgresql order-by

10
推荐指数
1
解决办法
2983
查看次数

SQL Server 2016 高空闲 CPU 和查询速度极慢

我有一个大约 10 天的 WinServer2012R2 和 SQL Server Express 2016 安装用于测试。我是这台机器上唯一的用户。SQL Server 2005 中的 .bak 大约为 250MB 的数据库已恢复,没有任何问题。机器重新启动后,进程“SQL Server NT - 64 位”使用 0% CPU。

几分钟或几小时后,来自“SQL Server NT - 64 位”的 SSMS CPU 使用率的一些简单查询(没有更新/插入!)突然跃升至约 15% 并保持在那里,即使在空闲时也是如此。从那时起,通常需要不到一秒钟的查询突然需要 2 分钟。在实际查询期间,CPU 使用率不会增加。在这种状态下,服务器几乎无法使用。

仅连接 SQL Server Profiler 需要 30 秒以上的时间。除了我自己的查询之外,我只看到来自 SQLServerCEIP / SQLTELEMETRY 的非常少的查询,大约每分钟 3 次。

重新启动 SQL-Server 并不能解决它。CPU 使用率立即回升至约 15%。即使在数小时后 SQL-Server 也不会恢复。只有重新启动整个机器才能解决问题。

由于这是一个“开箱即用”的安装,只有一个小数据库,几乎没有查询,只有我作为用户并且可能没有锁,关于常规 SQL-Server 性能问题的许多文章谈论了很多事情真的不适用这里。这似乎为SQL-服务器专用希望专注于一些内部的任务。

这是一个具有 2GB RAM 和 2GHz 双 Xeon 的虚拟机。我也有 VS2016,它真的很快。没有防病毒软件,甚至没有 Windows Defender。这里已经晚了。明天我将尝试 sp_whoisactive。我真的很想知道 SQL-Server 在那里做什么......在以前的机器上有 1 GB 相同的数据库在 …

performance sql-server sql-server-express sql-server-2014

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

用户活动记录的架构设计

我正在设计一个模式来支持用户活动的日志记录,用户必须能够搜索:

  • 跨所有事件(任何类型的事件),具有日期时间范围,按用户名;
  • 跨一种类型的事件,与上述相同,另外还有该模块的参数。

我创建了这个架构:

在此处输入图片说明

并设计查询以进行搜索:

  • 在所有事件中:

    SELECT extract(epoch from log_time) * 1000,
      u.username,
      CASE WHEN l.event_type IN (0, 2) THEN e.template
        WHEN l.event_type = 1 THEN format(e.template, ecs.field)
        WHEN l.event_type = 3 THEN format(e.template, ess.field)
        WHEN l.event_type = 4 THEN format(e.template, ect.ip, ect.port)
      END
    FROM logs l
    JOIN users u ON u.id = l.user_id
    JOIN event_def e ON e.id = l.event_type
    LEFT JOIN event_client_search ecs ON ecs.log_id = l.id
    LEFT JOIN event_switch_search ess ON ess.log_id = l.id
    LEFT JOIN event_cable_test …
    Run Code Online (Sandbox Code Playgroud)

postgresql database-design

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