小编Col*_*art的帖子

如何在维护计划作业中更改或更新本地服务器连接

两天前,我们的客户更改了我们的开发服务器名称之一

服务器重命名后,由于服务器名称不匹配,我所有的维护工作和其他工作都失败了。

我们使用的是sql server 2012版本和server 2008 操作系统

所以今天早上我将我的 Sql server 2012 名称重命名为更新的给定名称并制作表,程序更新

我试图在维护工作中更新本地服务器连接,但它是不可编辑的。然后我添加了新的服务器连接,但仍然没有用我在执行作业时遇到错误。

在我尝试在作业属性选项中使用目标页面后,也只选择了目标服务器并禁用了多个目标服务器。

下面的错误

以用户身份执行:NT Service\SQLSERVERAGENT。Microsoft (R) SQL Server 执行包实用程序版本 11.0.2100.60,适用于 64 位 版权所有 (C) Microsoft Corporation。版权所有。
开始时间:12:01:28 AM 错误:2013-12-16 00:01:43.98 代码:0xC00291EC 来源:{410F7661-F71A-4B68-9584-BA422AB00F02} 执行 SQL
连接任务说明:获取本地服务器连接失败. 连接可能未正确配置,或者您可能没有此连接的正确权限。结束错误
错误:2013-12-16 00:02:00.00
代码:0xC0024104
来源:Territory_Update
说明:任务上的 Execute 方法返回错误代码 0x80131904(建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。验证实例名称是否正确,并且SQL Server 配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接))。Execute 方法必须成功,并使用“out”参数指示结果。结束错误
错误:2013-12-16 00:02:15.00
代码:0xC0024104
来源:{4E2AF328-0B8D-4905-83BE-839FDDEFC09C}
说明:任务上的 Execute 方法返回错误代码 0x80131904(建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,并且SQL Server 配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接))。Execute 方法必须成功,并使用“out”参数指示结果。
结束错误 …

maintenance t-sql sql-server-2012 jobs

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

对 PostgreSQL 的 GEQO(遗传查询优化)的修改

我需要实现一个符合 PostgreSQL 的 GEQO 功能的功能。我知道 GEQO 方法是将查询计划编码为整数字符串,而 GEQO 会随机生成这些可能的连接序列。来源:http : //www.postgresql.org/docs/9.3/static/geqo-pg-intro.html

我的问题:如果我明确知道正确的连接序列,如何修改 GEQO 函数,这样我就不必搜索不同的连接序列。例如,如果我知道加入 4 个关系的最佳方式是 4-1-3-2,我就不必检查其他排列。

关于如何在 PostgreSQL 中实现 GEQO 没有任何好的材料。PostgreSQL 只给出了 GEQO 功能的整体视图,但并没有做太多解释。

或者我可以在不使用 GEQO 的情况下在 standard_join_search() 本身中实现这个功能吗?

postgresql optimization

16
推荐指数
1
解决办法
862
查看次数

取消引用 JSON 字符串;打印不带引号的 JSON 字符串

SELECT json_array_elements('["one", "two"]'::json)
Run Code Online (Sandbox Code Playgroud)

给出结果

| json_array_elements |
| :------------------ |
| “一个” |
| “两个” |

我想要相同但没有引号:

one
two
Run Code Online (Sandbox Code Playgroud)

看起来我不能->>在这里使用,因为我在 JSON 中没有字段名称。它只是一个字符串数组。

Postgres 版本:PostgreSQL 10.0 on x86_64-apple-darwin,由 i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (基于 Apple Inc. build 5658) (LLVM build 2336.11.00) 编译,64-少量

postgresql json string-representation postgresql-10

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

SQL Server 每天重新创建计划

我们的生产环境有这个问题。

Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64) - Windows NT 6.1(内部版本 7601:Service Pack 1)上的企业版(64 位)。

SQL Server 正在删除所有(几乎 100%)旧的执行计划,并在每天夜间(从晚上 11:00 到早上 8:00)重新创建它们。当“自动更新统计信息”处于禁用状态时,甚至会发生这种情况。在过去的 2-3 周内,我们已经开启了“自动更新统计信息”。但它仍在发生。

我们真的不知道是什么触发了这种重新生成计划,但我们确信我们不会手动进行。

唯一真正与计划重新生成时间一致的是我们的数据库维护工作:每日索引重组(碎片为 5-30% 时),以及每日索引重建(碎片超过 30% 时) ) 工作。通常这个日常维护工作只做重组(因为每天的索引碎片永远不会超过 30%)。

影响:

这些新创建的计划使一些 UDF 调用/查询调用(从 UI/网页调用)花费更长的时间(分钟而不是不到 1 秒),因此会话只会堆积起来,使 CPU 接近 90% .

当那些卡住的会话被强行删除(在 DB 端)时,问题就会消失,并且 1)当所有相应的执行计划被手动清除(对于查询)或 2)当 UDF 被更改(对于函数)时。从那一刻起,SQL 服务器创建的任何新计划都会在一天中完美运行,直到第二天早上最终出现相同的问题。此外,这种行为并不是 100% 一致的,我们并不是每天早上都能看到它。但是有一段时间我们已经连续 4-5 天看到它了。

问题发生在工作日的早晨,这似乎是更频繁地访问 UI/网页的时候。

有没有人知道是什么导致了这个问题以及如何解决这个问题?任何帮助将非常感激。

sql-server-2008 sql-server statistics execution-plan

14
推荐指数
1
解决办法
382
查看次数

Postgres 中“ctid”系统列的数据类型是什么?

Postgres 系统列记录在第 5 章。数据定义 > 5.4。系统列

该页面提到oid值“是 32 位数量”。该页面对交易标识符也有同样的说法。所以我假设这意味着oid, tableoid, xmin, cmin, xmax, 和cmax都是 32 位整数。

但这离开了ctid系统列。

行版本在其表中的物理位置。请注意,尽管 ctid 可用于非常快速地定位行版本,但如果行的 ctid 被 VACUUM FULL 更新或移动,则该行的 ctid 将更改。因此 ctid 作为长期行标识符是无用的。OID,或者更好的是用户定义的序列号,应该用于标识逻辑行。

? ctid列的数据类型是什么?

具体来说,我对 Postgres 10.3 版本感兴趣,但如果它在过去的版本中发生了变化,那会很高兴知道。

postgresql uniqueidentifier datatypes postgresql-10

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

无法将 MySQL 数据输出到文件

我正在尝试将 MySQL 表中的数据输出到文件,但出现权限错误:

$ pwd
/home/dotancohen
$ mkdir in
$ chmod 777 in/
$ mysql -ugs -p
mysql> USE someDatabase;
mysql> SELECT * FROM data INTO OUTFILE '/home/dotancohen/in/data.csv';
ERROR 1045 (28000): Access denied for user 'gs'@'localhost' (using password: YES)
mysql>
Run Code Online (Sandbox Code Playgroud)

如果有问题的目录被chmodded为777,那么为什么MySQL用户不能写入文件?有趣的是,我也不能写入 /tmp/。

编辑: 看起来数据库用户具有适当的 MySQL 权限:

mysql> show grants;
+----------------------------------------------------------------------------------+
| Grants for gs@localhost                                                          |
+----------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'gs'@'localhost' IDENTIFIED BY PASSWORD 'somePassword'     | 
| GRANT ALL PRIVILEGES ON `gs\_%`.* TO 'gs'@'localhost'                            | 
+----------------------------------------------------------------------------------+
2 rows …
Run Code Online (Sandbox Code Playgroud)

mysql linux permissions

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

镜像 - 无法访问服务器网络地址

我安装了 SQL Server 2008 R2。它包含三个实例。

  1. 默认 (MSSQLServer)
  2. 第一个例子
  3. 第二审

所有这些都是作为网络服务登录..

默认实例是主体服务器第一个实例是镜像第二个实例是见证服务器

我最初对我的主体数据库进行了完整备份和事务日志备份。通过保持相同的数据库名称将其恢复到第一个实例,恢复状态为无恢复

最后,我启动了镜像,并收到如下所示的两条错误消息。

在此处输入图片说明

在此处输入图片说明

sql-server-2005 sql-server-2008 sql-server mirroring

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

避免多个 `or` 表达式

我有以下 oracle SQL 及其作品,但所有ors都很丑陋。有没有更简洁的方法来做到这一点?

SELECT * FROM foobar WHERE
  (SUBJECT ='STAT' and TERM ='111') or  
  (SUBJECT ='STAT' and TERM ='222') or  
  (SUBJECT ='ENGLISH' and TERM ='555') or 
  (SUBJECT ='COMM' and TERM ='444') or
  (SUBJECT ='COMM' and TERM ='333') or  
  (SUBJECT ='STAT' and TERM ='666')
  ...
Run Code Online (Sandbox Code Playgroud)

oracle query-refactor

13
推荐指数
2
解决办法
2484
查看次数

为什么 PostgreSQL 选择更昂贵的连接顺序?

PostgreSQL 使用默认值,加上

default_statistics_target=1000
random_page_cost=1.5
Run Code Online (Sandbox Code Playgroud)

版本

PostgreSQL 10.4 on x86_64-pc-linux-musl, compiled by gcc (Alpine 6.4.0) 6.4.0, 64-bit
Run Code Online (Sandbox Code Playgroud)

我已经抽真空并分析过。查询非常简单:

SELECT r.price
FROM account_payer ap
  JOIN account_contract ac ON ap.id = ac.account_payer_id
  JOIN account_schedule "as" ON ac.id = "as".account_contract_id
  JOIN schedule s ON "as".id = s.account_schedule_id
  JOIN rate r ON s.id = r.schedule_id
WHERE ap.account_id = 8
Run Code Online (Sandbox Code Playgroud)

id列都是主键,所有被连接的都是外键关系,每个外键都有一个索引。加上一个索引account_payer.account_id

返回 76k 行需要 3.93s。

Merge Join  (cost=8.06..83114.08 rows=3458267 width=6) (actual time=0.228..3920.472 rows=75548 loops=1)
  Merge Cond: (s.account_schedule_id = "as".id)
  ->  Nested Loop …
Run Code Online (Sandbox Code Playgroud)

postgresql join execution-plan postgresql-10

13
推荐指数
1
解决办法
1417
查看次数

不测试一个功能可以吗?

是否有任何时候您对您的语言/数据库/系统变得如此熟悉,以至于无需测试新功能/配置/查询/等。在您的系统中实施之前通过包含/模拟测试(特别是关于修改数据的功能)?还是在测试环境中通过模拟来测试新查询总是必不可少的?

进一步说明,很明显,测试总是最安全的。但是,有没有一种方法可以确定何时风险如此之小以至于测试不值得付出努力?另一种表述方式:何时或曾经是专业的实践来承担风险来实现一个功能?

此外,让我们假设所有内容都已备份,因此,在最坏的情况下,数据可能通过一些努力来恢复数据。

有人可以引用具体的专家经验来解决这个问题吗?请在适当/可能的情况下包括参考文献。

database-design testing learning features configuration

12
推荐指数
1
解决办法
304
查看次数