小编ype*_*eᵀᴹ的帖子

强制 PostgreSQL 进入恢复模式

我有一个有点奇怪的问题。

有没有办法手动强制 PostgreSQL 进入恢复模式?我无法在文档中找到任何内容。

我一直在使用监控 PostgreSQL 数据库的脚本,需要做一些测试。

postgresql

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

复制错误

由于以下错误,我们有一个从服务器已停止复制:

Slave SQL: Query caused different errors on master and slave.
Run Code Online (Sandbox Code Playgroud)

导致此错误的原因可能是什么?什么是修复它的方法?

主从版本均为 MySQL 5.5.30

130726 23:55:45 [Note] C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld: Shutdown complete

130726 23:58:39 [Note] Plugin 'FEDERATED' is disabled.
130726 23:58:39 [Warning] C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld: ignoring option '--innodb-file-per-table' due to invalid value 'ON'
130726 23:58:39 [Note] Plugin 'InnoDB' is disabled.
130726 23:58:39 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
130726 23:58:39 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
130726 23:58:39 [Note] Server socket created on IP: '0.0.0.0'.
130726 …
Run Code Online (Sandbox Code Playgroud)

mysql replication mysql-5.5

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

索引分配图

我是一名正在阅读“查询 Microsoft SQL Server 2012”一书的开发人员。我遇到了下图:

在此处输入图片说明

  1. 为什么图表前两行中的页面(第 1 行开始:1:174和第 2 行开始:)1:41不是范围的一部分?文档说:“所有页面都存储在范围内”:

  2. 数字方案是如何工作的,例如是什么1:174意思?

  3. 在图的正上方,这本书说:“一个对象的 IAM 页面被组织成一个双向链表;” 该图未显示页面之间的任何链接。

index sql-server sql-server-2012

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

ASM 磁盘组从另一个 ASM 实例中删除

我很久以前就创建了一个 ASM RAC 设置,并创建了一个磁盘组,名称为xyz. 我认为该实例已经消失,但磁盘组并未使用以下命令专门删除:

drop diskgroup xyz including contents;
Run Code Online (Sandbox Code Playgroud)

现在我已经创建了一个新设置并想要重新利用这些磁盘,我收到以下错误:

CREATE DISKGROUP XYZ EXTERNAL REDUNDANCY DISK ...

ORA-15003: diskgroup "xyz" already mounted in another lock name space
Run Code Online (Sandbox Code Playgroud)

如何删除此磁盘组?任何帮助表示赞赏。

oracle oracle-asm

6
推荐指数
1
解决办法
1529
查看次数

计算组内的中值

我有一个存储过程,它计算10 分钟间隔内请求/响应周期的平均持续时间。这很有效,适合我绘制图表的需求。我接下来想做的是计算值......我怀疑我需要一个子查询,但不知道如何完成这个。

SELECT dateadd(minute, 10 + (datediff(minute, 0, [Started]) / 10) * 10, 0) AS [Time]
     ,AVG(CASE WHEN Duration is null OR Duration = 0 
              THEN null ELSE Duration 
          END) AS [Mean Response Time]
FROM [Application].[Exchange] WITH (NOLOCK)
WHERE [Started] >= '24 Oct 2012' AND [Started] < '25 Oct 2012'
GROUP BY dateadd(minute, 10 + (datediff(minute, 0, [Started]) / 10) * 10, 0) 
ORDER BY dateadd(minute, 10 + (datediff(minute, 0, [Started]) / 10) * …
Run Code Online (Sandbox Code Playgroud)

sql-server-2008 sql-server aggregate t-sql azure-sql-database

6
推荐指数
1
解决办法
1847
查看次数

EXISTS 与 LEFT JOIN 的实际应用以查找送货地址

我们的最终用户可以通过多种方式将产品运送给我们的客户。他们可以使用一个表中的客户地址 ( [customer])、另一个表中的特定送货地址 ( [dropship]) 或另一个表中的另一个送货地址(对于具有多个位置的客户) ( [delivery])。这些都具有大致相同的结构,对于相同的数据点具有相同的列名(例如[address]是所有表中的地址)。

目前,我们查找订单收货地址的逻辑如下:

SELECT
    Address = COALESCE(r.address, d.address, c.address) 
FROM [order] o 
JOIN customer c
    ON o.customerid = c.customerid
LEFT JOIN delivery d
    ON o.customerid = d.customerid
    AND o.delivaddressid = d.delivaddress
LEFT JOIN dropship r
    ON o.orderid = r.orderid;
Run Code Online (Sandbox Code Playgroud)

基于对话而不是一些博客文章EXISTS似乎是首选。

然而,这对我来说是一个新的范式,我正试图将我的大脑围绕在它周围。我是否只是将LEFT JOINs替换为

WHERE EXISTS 
    (select 1 from delivery d
        where o.customerid = d.customerid 
        and o.delivaddressid = d.delivaddress)
Run Code Online (Sandbox Code Playgroud)

这将不允许我使用数据,[delivery]除非我将它扔到FROM …

sql-server-2008-r2

6
推荐指数
1
解决办法
236
查看次数

QUERY - 透视多列,可变行数

我有一张看起来像这样的表:

RECIPE     VERSION_ID     INGREDIENT    PERCENTAGE
4000       100            Ing_1          23,0
4000       100            Ing_100         0,1
4000       200            Ing_1          20,0
4000       200            Ing_100         0,7
4000       300            Ing_1          22,3
4000       300            Ing_100         0,9
4001       900            Ing_1           8,3
4001       900            Ing_100        72,4
4001       901            Ing_1           9,3
4001       901            Ing_100        70,5
5012       871            Ing_1          45,1
5012       871            Ing_100         0,9
5012       877            Ing_1          47,2
5012       877            Ing_100         0,8
5012       879            Ing_1          46,6
5012       879            Ing_100         0,9
5012       880            Ing_1          43,6
5012       880            Ing_100         1,2
Run Code Online (Sandbox Code Playgroud)

每个配方/版本有 100 种成分。我想像这样显示这个表中的数据: …

sql-server pivot sql-server-2008-r2

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

具有空值的两行合并为没有空值的一行

我已经从表中获取了这样的记录:

Name                 Opp                     Bid                  Pro
----------------------------------------------------------------------
Admin                 2                      NULL                 NULL
Pragnya Sonal         7                      NULL                 NULL
Priyanka Debnath      17                     NULL                 NULL
Sanjeev Sasmal        2                      NULL                 NULL
Subrajeet Sahoo       1                      NULL                 NULL
Pragnya Sonal         NULL                   2                    NULL
Pragnya Sonal         NULL                   NULL                 1
Run Code Online (Sandbox Code Playgroud)

但我想以这种格式重新排序这个表:

Admin                 2                      NULL                 NULL
Pragnya Sonal         7                      2                    1
Priyanka Debnath      17                     NULL                 NULL
Sanjeev Sasmal        2                      NULL                 NULL
Subrajeet Sahoo       1                      NULL                 NULL
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题,在此先非常感谢

sql-server

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

如何获取序列列的序列名称

据我所知,此查询应显示串行列的新值的表达式:

select d.adsrc
from (
 SELECT a.attrelid, a.attnum, n.nspname, c.relname, a.attname
 FROM pg_catalog.pg_attribute a, pg_namespace n, pg_class c
 WHERE a.attnum > 0
 AND NOT a.attisdropped
 AND a.attrelid = c.oid
 and c.relkind not in ('S','v')
 and c.relnamespace = n.oid
 and n.nspname not in ('pg_catalog','pg_toast','information_schema')
) x
left join pg_attrdef d on d.adrelid = x.attrelid and d.adnum = x.attnum
where x.relname = 'table_name' and x.nspname = 'schema_name' and x.attname = 'column_name'
;
Run Code Online (Sandbox Code Playgroud)

它大部分时间都有效,但如果我重命名序列,新名称不会反映在查询结果中 - 它继续显示序列的原始名称。任何想法为什么?

postgresql sequence greenplum

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

阻止 SQL Server 对结果进行排序?

我正在教一门课,我想向我的学生证明,如果没有明确的ORDER BY. 我观察到即使ORDER BY查询中不存在SQL Server 似乎也返回有序结果。这是一个问题,因为我担心我的学生会在这一点上感到困惑。

观察到的行为示例:

  • 默认情况下,数据似乎按主键顺序排列,即使主键是非集群的。
  • 如果我使用GROUP BY,结果集似乎按最后一列的顺序排列。
    例如GROUP BY this, that,以数据的顺序结束,这很奇怪,尤其是在没有索引的情况下。

我还没有在其他数据库(如 MySQL、PostgreSQL 和 SQLite)中观察到这种行为。SQL Server 是否有一些根本不同的地方,即使没有ORDER BY?

现在在我看来,在没有被询问的情况下对数据进行排序是一个额外的不必要步骤,会浪费处理时间。真的吗?

是否有某种全局设置可以禁用这种行为?有没有办法让 SQL Server 停止对数据进行排序?

这也使得向学生证明数据不是自动排序的变得更加困难。

谁能给我一个简单的演示脚本,显示结果从执行到执行的变化顺序?

sql-server order-by group-by nonclustered-index

6
推荐指数
3
解决办法
6487
查看次数