标签: sql-server-2012

SQL Server 2000 和 SQL Server 2012 可以共存吗?

我们在我客户的 Prod Server 上的 SQL Server 2000 上有 OLTP 数据库。计划在同一台服务器上创建数据仓库,但使用 SQL Server 2012。我可以安装而不出现任何问题吗?

sql-server-2000 sql-server-2012

5
推荐指数
2
解决办法
2277
查看次数

数据库安装问题

我是从 Stack Overflow 导航过来的,希望你能帮助我。

所以我有一个两难选择。我们公司已经购买了Microsoft SQL Server 2012 标准版的批量许可。我们购买了按核心许可方案。所有这些都没有任何问题。我们甚至安装它没有任何问题。

不过,这个问题来自微软。当我配置我们的批量许可证帐户时,他们说:

我们将发布一个不需要密钥即可使用的特殊安装文件。为了将其安装到您购买的正确处理器分配中,您需要多次安装该文件。

因此,从我收集到的信息来看,Microsoft SQL Server 2012 Standard Edition Per-Core 许可证默认配置为双核。所以我明白如果我有一个四核,我必须购买两次。我不明白,为什么我需要安装两次?

我找不到任何关于此的文档。

这个过程似乎不正确,有没有办法测试SQL正在运行的核心数?任何帮助都会很棒-

我尝试过的事情:

  • SQL 安装指南
  • SQL 入门
  • 致电微软

我觉得这个问题不应该像现在这样复杂。

那些并没有让我更接近我的目标,我觉得我应该只需要安装一次。但是,随着微软授权技术员所说的话,我的头上突然冒出一丝疑虑。

再次感谢。


更新:

因此,在我们的Microsoft 批量许可帐户中,这就是我们下载提供的全部内容:

不需要密钥。 描述

我觉得这加剧了这种混乱。我们已将其安装在服务器上;但我不完全确定我是否可以检查它是否正在运行所有内核。收据显示我们已经购买了多个许可证-

如果我理解发布的答案;它应该从安装中内置到我们的许可证文件中。有没有办法检查?

sql-server installation sql-server-2012

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

表值函数中的条件 WHERE 子句

我有一个表值函数

    CREATE FUNCTION [dbo].[DateRange] 
    (
        @StartDate date,
        @EndDate date,
        @Location varchar(25),
        @Device varchar(25)
    ) 
    RETURNS TABLE 
    AS
    RETURN 
    (
        SELECT *
        FROM MyTable
        WHERE Date < @EndDate AND
              Date > @StartDate AND
              Location = @Location AND
              Device = @Device 

    );
Run Code Online (Sandbox Code Playgroud)

现在我想让用户选择使用 NULL 作为位置参数和/或设备参数,以便他/她获取与位置和设备无关的所有数据

什么是最优雅和最有效的方式来做到这一点?

t-sql sql-server-2012

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

SQL Server 使用的总内存(64 位)

我对这个主题的了解表明 perf counter SQL Server:Memory Manager: Total Server Memory 只给你缓冲池内存。在名为 sys.dm_os_process_memor 的 DMV 中有一个名为 physical_memory_in_use 的列,它为您提供物理工作集。

但我不确定...

是否有 DMV 或性能计数器可以告诉我在 64 位 Windows 操作系统上运行的 64 位 SQL Server 2008 R2 和 SQL 2012 的 SQL Server 进程使用的总物理内存(缓冲池 + 非缓冲池,即 MemToLeave)?

sql-server-2008 sql-server sql-server-2008-r2 sql-server-2012

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

选择性 Xml 索引

我最近一直在研究 Selective Xml Indexing 并一直试图弄清楚如何索引一个.query方法

如果我有以下查询

WITH XMLNAMESPACES (Default 'http://www.w3.org/2001/XMLSchema' )
SELECT 

    ,a.value('@Number' , 'INT') As Number
    ,c.query('.') as FormattedXml

    From

    dbo.XmlTable As X

    Cross Apply x.XmlColumn.nodes('Root') aa(a) 
    Cross Apply a.nodes('Block') bb(b)
Run Code Online (Sandbox Code Playgroud)

如果我正确地遵循它,我可以编写如下的选择性索引:

CREATE SELECTIVE XML INDEX xsi_XmlTable
ON dbo.XmlTable( XmlColumn )
WITH XMLNAMESPACES ( Default 'http://www.w3.org/2001/XMLSchema' )
FOR
(
      root = '/Root' AS XQUERY 'node()'
    , rootNumber = '/Root/@Number' AS SQL INT SINGLETON

)
GO
Run Code Online (Sandbox Code Playgroud)

我可以在索引中包含 c.query 吗?谢谢

sql-server sql-server-2012

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

使用 Management Studio 手动输入数据

如何通过 GUI 界面而不是insertSQL Server Management Studio 2012 中的命令输入数据?我在任何地方都找不到它,而以前的版本中曾经有一个选项。曾经有一个表格 GUI,您可以在其中指向某个记录并添加/修改日期。2012年找不到。

ssms sql-server-2012

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

服务器代理队列的激活存储过程的服务器权限

我有一个查询sys.dm_exec_requests视图的存储过程。在存储过程中,视图只返回一行,而存储过程需要查看所有行。视图上的MSDN文章说返回什么取决于用户权限:

如果用户在服务器上有 VIEW SERVER STATE 权限,用户将看到 SQL Server 实例上所有正在执行的会话;否则,用户将只能看到当前会话。

存储过程实际上是一个broker队列的激活存储过程:

CREATE QUEUE test_queue
  WITH 
  STATUS = ON,
  RETENTION = OFF ,
  ACTIVATION (
    STATUS = ON,
    PROCEDURE_NAME = test_procedure,
    MAX_QUEUE_READERS = 1, 
    EXECUTE AS SELF ),
POISON_MESSAGE_HANDLING (STATUS = ON) 
ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

当我阅读MSDN文章时,我改变了

EXECUTE AS SELF
Run Code Online (Sandbox Code Playgroud)

EXECUTE AS 'dbo'
Run Code Online (Sandbox Code Playgroud)

这没有任何区别。sys.dm_exec_requests仍然会返回一行。

我也试着做

EXECUTE AS OWNER
Run Code Online (Sandbox Code Playgroud)

这也没什么区别。据我了解,存储过程所有者是谁创建的,也就是我。由于我处于系统管理员角色中,应该可以正常工作,但事实并非如此。我将不胜感激任何故障排除提示。

特别是我想知道如何列出给定用户的服务器权限,以便我可以根据文章检查它们是否包含“查看服务器状态”权限。

令人困惑的部分是我所理解的用户是在数据库级别,所以我不清楚它如何获得服务器权限。如果你能澄清这一点,那就太好了。

security sql-server sql-server-2012

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

使用 SQL Server 2012 启动服务错误代码 3417

我无法启动 SQL Server 2012 服务。事件日志显示特定于服务的错误代码是 3417。

在事件查看器中:

SQL Server (MSSQLSERVER) 服务因以下特定于服务的错误而终止:
警告:您必须在 SQL Server (MSSQLSERVER) 之前注销。如果此时您尚未注销,您的会话将被断开,并且您打开的任何打开的文件或设备都可能丢失数据。

我已经更改了服务属性中的服务登录帐户,但此错误再次发生。

我认为问题出在master数据库中,但我不知道该怎么办。

编辑:

我试过重建资源数据库, 但这个错误又发生了!

sql-server sql-server-2012

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

SQL Server 全文索引可以处理多少数据?

我意识到这个问题很模糊,这取决于硬件和我们的需求。

我们目前有 500 万行数据,总共有 5GB 的数据,我们希望使用全文索引对其进行索引。我们的数据增长非常快,假设几年后它会接近 10 亿行和 1 TB 数据并不是没有道理的。

该索引可供网站用户搜索,他们希望在一两秒钟内得到响应。

假设该数据集可使用 SQL Server 2012 全文索引编制索引是否合理?对如此大量的数据进行全文索引是否常见?有没有关于这个主题的好读物,例如来自其他人的经验?

performance full-text-search sql-server-2012

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

动态谓词的索引策略

假设 SQL Server 2012 标准版。

我的数据库有一个包含 5 亿行的表。该表有大约一打列,没有一个列很宽(一些 varchar(100) 和一些 int)。

聚集索引(也是主键)是一个标识列。

使用此表的应用程序有一个屏幕,用户可以在其中搜索大多数列。屏幕上的一个搜索字段是必需的,可以选择搜索开头为或包含,结果是

WHERE ABC LIKE 'something%' -- starts with 
Run Code Online (Sandbox Code Playgroud)

或者

WHERE ABC LIKE '%something%' -- contains
Run Code Online (Sandbox Code Playgroud)

实际查询是参数化的,这与我这里的示例不同。

其他搜索字段以搜索开头,就像上面的第一个示例一样,但它们不是必需的。因此,可以搜索这些字段的任何组合,从而生成动态 where 子句。

鉴于此信息,应创建哪些索引以获得最佳性能?

请记住,我是查询性能调优的新手,我对这种情况的幼稚策略是为每列创建一个非聚集索引,并对具有 contains 搜索选项的列使用全文搜索。我很想知道为什么或为什么不是一个坏主意,以及更好的方法是什么。

更新

我知道全文搜索是如何优化“包含”搜索的情况。

我对问题的另一个方面更感兴趣:如何针对任何给定查询谓词中可能存在或可能不存在的其他搜索字段进行优化。我的问题中包含可以从全文索引中受益的有关该领域的详细信息,只是为了帮助更全面地了解我的特定情况。

index sql-server index-tuning sql-server-2012

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