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
    • 最新
    • 标签
主页 / user-9486

Paul's questions

Martin Hope
Paul
Asked: 2018-12-22 01:06:46 +0800 CST

SSMS 如何找到连接名称

  • 1

如何通过 TSQL 返回连接名称?这可以通过属性窗口在 SSMS 中看到。例如,如果您有一台名为“SRVR0001”的机器的 DNS 别名“ProductionServer”,并且还为此名为“Live Production”的本地服务器注册,然后

1) 打开一个提供服务器名称“ProductionServer”的新查询,然后连接名称将为“ProductionServer” 2) 右键单击​​本地注册并选择新查询,连接名称将为“Live Production”

当然,在这两种情况下select @@SERVERNAME都会返回 SRVR0001。

这与这些问题相似但不同:
https ://stackoverflow.com/questions/16088151/how-to-find-server-name-of-sql-server-management-studio
https://stackoverflow.com/问题/129861/我如何查询当前 sql 服务器数据库实例的名称

我预计答案很可能是这是 SSMS 持有的本地属性,因此不能由在 SQL Server 上运行的 TSQL 返回。

sql-server ssms
  • 1 个回答
  • 1373 Views
Martin Hope
Paul
Asked: 2017-10-02 23:21:30 +0800 CST

视图的异构查询错误

  • 0

我最近第一次体验到错误“异构查询需要为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。 ”我没有遇到过。我在这个站点和其他地方找到的几乎所有资源都在存储过程中处理这种情况。

我的具体情况是供应商提供的应用程序和数据库,我可以更改数据库但不能更改应用程序。我在数据库上创建了一个到另一台服务器的视图(通过链接服务器),但是当我尝试在应用程序中使用它时,出现了上述错误。我使用 SQL Profiler 来证明该应用程序打开其与 ANSI NULL 和 WARNINGS OFF 的连接。我使用 SSMS 来证明该链接适用于那里的默认值。但与 SP 不同的是,我无法在视图上设置 ANSI WARNINGS。

我在数据库上设置了 ANSI WARNINGS 作为测试,该应用程序现在可以运行,但我无法负担该应用程序的完整回归测试,因此该解决方案不起作用。我还尝试了许多不同的方式来实现链接服务器,包括在服务器上创建一个 ODBC 连接然后使用它。但这就像应用程序明确将 ANSI WARNINGS 设置为关闭。

不确定是否重要,但源服务器是 SQL2000,远程服务器是 SQL2008R2。

sql-server view
  • 1 个回答
  • 521 Views
Martin Hope
Paul
Asked: 2017-06-30 06:23:07 +0800 CST

优化利用函数的视图

  • 2

我们的一位开发人员创建了一个视图,其中一个选择列被包装在 RTRIM 函数中。基础表上的同一列上有一个非聚集索引。

由于 RTRIM,现在使用此视图和此列上的 where 语句的查询无法使用索引。我需要视图的输出是一致的,因为不幸的是这个开发人员不再和我们在一起,我无法阅读他的代码。

有哪些优化选项?我有一个,但我希望有更好的。

sql-server sql-server-2008-r2
  • 1 个回答
  • 39 Views
Martin Hope
Paul
Asked: 2017-01-27 01:46:54 +0800 CST

递归 cte 避免循环

  • 4

我正在尝试编写递归 CTE 来探索工作流系统。不幸的是,由于循环,我得到了最大的递归错误:

with cteActs as
 (
  select a.id as [id], aa.TASKNEXTID as [childid]
  from TASK a
  inner join TASKNEXT aa on a.id = aa.TASKPARENTID
  where a.id != aa.TASKNEXTID
  ),
 cteNext as
(
    select a.*
    from cteActs as a
    where a.id=42
    union all
    select a.*
    from cteActs as a
    inner join cteNext as n on a.id = n.childid
    )
select * 
from cteNext

该表TASK是一个任务列表,例如其中 42 是“开始作业”。TASKNEXT将 42 链接到TASK表中可能的子任务。例如,它可以将 42 链接到 43,这可能是“查找材料”,例如

ID, name, childID
42, Start job, 43
42, Start job, 44
43, Find materials, 200
44, Report to boss, 201
201, Discuss with boss, 202
202, Receive payment, 44

我认为递归正在消亡,因为 44>201>202>44 创建了一个循环,查询不会从中逃脱。我怎么能允许这样做?我阅读的大多数示例/教程都假定严格的父>子关系,其中子永远不能成为其更高树中某些事物的父。

我想要得到的是一个不同的列表,TASKS该列表源自从任务 42 开始的流程,或者我选择的任何地方。


这是迭代 2,它可能有效,但运行速度很慢:

  select a.id as [id], aa.ACTIONACTIVITYID as [childid]
   into #temp
  from TASK a
  inner joinTASKNEXT aa on a.id = aa.TASKPARENTID
  where a.id != aa.TASKNEXTID    
  create clustered index [hello] on #temp (ID ASC)
  create nonclustered index [hello2] on #temp (childid ASC)
  ;
with cteNext as
(
    select a.*, 
    cast(',' + cast(a.ID as varchar(10)) + ',' as varchar(max)) as Path,
    0 as [cyc]
    from #temp as a
    where a.id=42
    union all
    select a.*,
    n.Path + cast(a.ID as varchar(10)) + ',',
         case when n.Path like '%,'+cast(a.ID as varchar(10))+',%' 
           then 1 
           else 0 
         end as [cyc]
    from #temp as a
    inner join cteNext as n on a.id = n.childid
    where n.cyc = 0
    )

select   id, childid
from cteNext
where cyc =0

执行计划

sql-server sql-server-2008-r2
  • 1 个回答
  • 9247 Views
Martin Hope
Paul
Asked: 2016-12-14 00:46:26 +0800 CST

SSMS 建议的索引和兼容模式

  • 0

我正在运行一个旧的生产应用程序,它有一个后端数据库托管在兼容模式 80 (SQL2000) 的 SQL2008R2 上。当我运行一些 TSQL 来查看实际执行计划时,SSMS 会给我建议的索引,这些索引仅对 SQL2005+ 合法,例如包含列的索引。我怎样才能阻止它这样做?我想查看它可能建议的合理索引。

注意:兼容模式无法更改。是的,我们正在更换应用程序,这将完全消除对数据库的需求,但不会持续一段时间。

注意:已经尝试过,SSMS 被配置为“服务器版本脚本”作为 SQL Server 2000。

sql-server sql-server-2008-r2
  • 1 个回答
  • 149 Views
Martin Hope
Paul
Asked: 2016-08-05 05:23:31 +0800 CST

Order 是结果集的一部分吗?

  • 2

这个问题让我开始思考: ROW_NUMBER() OVER (PARTITION BY,A ORDER BY C) doesn't use index on (A,B,C) 在其中提问者指出两个函数给出了相同的结果集,但是他们不t 因为它们具有相同的行,但它们始终处于不同(且一致)的顺序。

结果集的顺序是结果集的一部分吗?维基百科暗示不(但没有强烈确定答案,也没有从权威的立场发言):

https://en.wikipedia.org/wiki/Result_set

是

Sector  Name
A   Alpha
B   Beta

相同的结果集

Sector  Name
B   Beta
A   Alpha

我个人只使用 SQL Server,答案是否因平台而异?答案只是见仁见智吗?(如果是这样,请只给出事实的答案,或者至少给出专业机构的共识——请不要代表你的个人意见)

sql-server relational-theory
  • 3 个回答
  • 104 Views
Martin Hope
Paul
Asked: 2015-05-14 06:59:30 +0800 CST

按行排序,而不是按列排序

  • 1

在 SQL Server 中是否可以对表中的各个行设置排序规则(而不是按列、数据库或服务器)?

如果不是,也许有人知道这是否是 SQL Server 2016 的计划功能?

这解决的唯一问题是两个同事之间的好奇心。

sql-server database-design
  • 2 个回答
  • 452 Views
Martin Hope
Paul
Asked: 2014-08-23 05:36:02 +0800 CST

进行还原时进行尾日志备份?

  • 11

通常,在将数据库从生产服务器还原到非生产服务器时,我会使用 WITH REPLACE 选项,因为当我忘记了关于未备份尾日志的错误时。

根据 MSDN,我确实应该在恢复之前备份我的尾日志:

如果数据库处于联机状态并且您计划对数据库执行还原操作,请从备份日志尾部开始。为避免联机数据库出错,您必须使用 BACKUP Transact-SQL 语句的 ... WITH NORECOVERY 选项。

我这样做的方式有哪些危险或缺点?为什么首先备份尾日志对我有利?

我正在使用 SQL Server 2008R2,但我假设此查询将与大多数较新版本的 SQL Server 相关,因此最初也没有将其标记为这样。

sql-server restore
  • 1 个回答
  • 11863 Views
Martin Hope
Paul
Asked: 2014-08-19 02:32:58 +0800 CST

使用 ODBC 的链接服务器太慢

  • 1

该场景是开发人员使用链接服务器对象ServerM来达到ServerST. 此链接服务器被设置为“SQL Server”类型,使用作为登录名存在于ServerST.

现在,开发人员要求重新配置此链接服务器对象(名为ServerST)以指向ServerAR(尽管令人困惑的是该对象仍将命名为ServerST)。这使他们可以节省重写大量代码的时间,这是他们没有的时间。

现在我可以在ServerM“其他数据源”类型上创建一个新的链接服务器并提供一个有效的连接字符串。然而,使用新的链接服务器,对原始链接服务器的查询花费了 5 秒,花费了 46 秒。

所以我的问题是如何提供一个名为 的链接服务器ServerST,它指向ServerAR并以相同的速度运行。

所有服务器都在 SQL Server 2008 R2 SP2 上。

我目前用来创建慢速链接服务器的代码是:

sp_addlinkedserver 'ServerST', ' ', 'MSDASQL', '', '',  
    'Driver={SQL Server};Server=ServerST;Database=theDB;Uid=link_ServerM;Pwd={P@ssw0rd};'
sql-server-2008-r2 linked-server
  • 1 个回答
  • 1401 Views
Martin Hope
Paul
Asked: 2014-04-17 07:20:45 +0800 CST

msdb..sysjobactivity 中的 Oprhaned 条目

  • 5

在这个问题中: https ://stackoverflow.com/questions/18445825/how-to-know-status-of-currently-running-jobs

提出了这个答案:

SELECT sj.name
   , sja.*
FROM msdb.dbo.sysjobactivity AS sja
INNER JOIN msdb.dbo.sysjobs AS sj ON sja.job_id = sj.job_id
WHERE sja.start_execution_date IS NOT NULL
   AND sja.stop_execution_date IS NULL

但是,对于我的其中一台服务器,这有一个可以追溯到 10 个月前的条目。查看 SQL 代理作业活动监视器显示没有正在运行的作业。查看 msdb..sysjobs 仅显示 3 个作业。谁能解释这种现象?

孤立行的 queued_date、stop_execution_date、job_history_id 和 next_scheduled_date 为 NULL。其余的值看起来是合理的。

sql-server sql-server-2008-r2
  • 2 个回答
  • 8560 Views
Martin Hope
Paul
Asked: 2014-04-09 02:57:42 +0800 CST

查找最后一个使用数据库的人的登录名或用户名

  • 1

老板要求提供数据库名称列表以及最后使用该数据库的人的大小和姓名。我找到了最后一次访问数据库的时间但由谁访问的资源。我将如何解决这个问题?

正在使用 SQL2008R2,到目前为止我有这个:

exec sp_MSForEachDB '
use ?
select ''?'', (SUM(df.size)*8)/1024 as ''Size (MB)''
from sys.database_files as df
'

答案的最后一个人方面模糊或松散是可以接受的。即只要是最近某个时候模糊地靠近它的人,那是“好的”。

sql-server sql-server-2008-r2
  • 1 个回答
  • 11908 Views
Martin Hope
Paul
Asked: 2014-03-28 07:06:11 +0800 CST

用于 INSERT 时的 GETDATE() 唯一性

  • 2

最近在看这篇博文: 链接

其中包含本节:

选择聚集索引

有几种选择聚集索引的策略;最简单和最好的方法之一是添加另一列数据类型 datetime 并将该列用于聚集索引。这是您需要做的:

  1. 将列添加为数据类型 datetime

  2. 我通常称它为日期

  3. 将默认值设置为 GetDate()。

  4. 使其非空。

  5. 在向您插入数据之前,在其上创建聚集索引。

我的问题是这会为日期创建两个相同的值吗?如果使用并行性,这个答案会改变吗?(假设值从未指定,总是来自 GetDate())

我相信由于添加了幕后唯一性,我认为这无关紧要是正确的,对吧?但无论如何我都很感兴趣。

我是从 SQL2008R2 的角度询问的,但是如果从 7.0 开始的任何版本的 SQL Server 的答案都不同,我会感兴趣。

sql-server index
  • 1 个回答
  • 7507 Views
Martin Hope
Paul
Asked: 2014-02-18 07:58:14 +0800 CST

更改 SQL Server 2008 R2 的 IP 地址

  • 7

我想知道在更改SQL Server 2008 R2机器的IP地址之前是否有任何危险或相关注意事项。

我们用 Windows Server 2008 R2 和 SQL Server 2008 R2 构建了一个虚拟 PC。这台机器的目的是运行一个恢复备份文件(由不同的服务器复制)的作业,对其进行操作,再次备份它,然后将其复制到其他服务器。我们已经在我们的测试/开发 DMZ 中运行了几次,现在正在考虑部署。

最简单的选择是重新 IP 它。服务器名称将保持不变。我的问题是一位同事建议这是不安全的(重新 ip SQL Server)。我的问题是

a) 对于我正在使用的操作系统和 SQL,这是真的吗?(赢得 2008 R2 和 SQL 2008 R2?)

b) 对于 OS 和/或 SQL 的任何其他组合是否正确?

c) 在准备过程中我们应该做些什么特别的事情吗?

到目前为止,我的研究表明它会很好,但我更信任 DBA StackExchange 的人,而不是那些社交 MSDN 人。

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/9844e0c1-b57e-4e0c-88cf-7cb51cc55e07/change-sql-server-ip-address

http://www.sqlservercentral.com/Forums/Topic1164450-391-1.aspx

sql-server sql-server-2008-r2
  • 4 个回答
  • 38773 Views
Martin Hope
Paul
Asked: 2013-09-19 04:54:59 +0800 CST

撕裂页面检测和校验和是什么时候引入 SQL Server 的,升级行为是什么?

  • 15

现代 SQL Server 中有两种不同的选项用于页面验证;是残页检测和校验和。无当然也是一种选择。

我相信Checksum是在 SQL Server 2005 中引入的,并且从以前的版本升级或恢复数据库将保持其以前的页面验证方法。即没有隐式升级。

所涉及的问题是,我们有一个使用 SQL Server 2000 投入生产的生产数据库,并且已经转移到 SQL Server 2008 R2 服务器。当我期待它是Torn Page Detection时, Page Verify 设置为None。回顾这段时间,我们似乎认为数据库最初是在 SQL Server 7.0 中开发的,然后迁移到 SQL Server 2000,这可以解释观察到的结果。

我想知道撕裂页面检测和校验和何时成为 SQL Server 的一项功能,以及它们在迁移或升级到新版本时的行为。

编辑:总结一些答案:

撕裂页面检测进入 SQL Server 的一些日期存在一些差异。
链接 1: http: //support.microsoft.com/kb/230785
链接 2:http ://technet.microsoft.com/en-us/library/aa337525(v=sql.90).aspx

第一个链接指示 SQL 7.0 和第二个 SQL2000。我倾向于相信 SQL7.0 的建议,链接 2 对它在 SQL7.0 中默认关闭而在 SQL2000 中默认打开而感到困惑。

sql-server
  • 4 个回答
  • 8113 Views
Martin Hope
Paul
Asked: 2013-08-01 07:12:15 +0800 CST

我可以强制用户使用 WITH NOLOCK 吗?

  • 6

我可以强制用户的查询始终以 NOLOCK 提示运行吗?例如,他们键入

select * from customer

但是在服务器上执行的是

select * from customer with (nolock)

这个问题不是:
关于NOLOCK的各种利弊,恭敬。我知道它们是什么,这里不是讨论它们的地方。

sql-server sql-server-2008-r2
  • 4 个回答
  • 14324 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