标签: sql-server-2012

从 SQL Server 2012 到 SQL Server 2000 服务器的链接服务器

我有一个新的 SQL Server 2012 实例,并且正在从 SQL Server 2000 迁移数据库。数据库中的一些存储过程我正在移动引用另一个数据库回到该 2000 服务器上。处理这个问题的最佳方法是什么?

链接服务器会有帮助吗?我在创建测试链接时遇到问题。有些人推荐使用 ODBC,其他人似乎使用 SQL Server 10 客户端驱动程序 (SQLNCLI10)。使用 SQL Server 10 客户端驱动程序对我来说似乎更好,在 SQL Server 2012 实例上安装它有问题吗?

sql-server sql-server-2000 linked-server sql-server-2012

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

SQL Server 2012 AlwaysOn:需要通过脚本-T-sql或PowerShell自动添加数据库

我已经为即将推出的新“Intranet”安装并成功配置了我们的 SQL Server 2012 AlwaysOn 2 节点服务器。我已经让 AlwaysOn 运行良好,我们的 Intranet 前端服务器将使用 SharePoint 2013。问题是 SharePoint 2013 被配置为自动将数据库添加到我们的 SQL Server 2012 后端,而不是 AlwaysOn。在阅读有关此内容并联系 Microsoft MSDN 支持时,默认答案是“您必须手动查找、选择、备份然后单独添加这些新数据库,以将它们加入 AlwaysOn”。

可是等等; 这可能是一项艰巨的任务,不断检查 SQL Server 后端服务器以查看创建了哪些数据库,然后必须将它们添加到 AlwaysOn,7/24!我正在寻找一个脚本或进程来检查新数据库,以完整模式备份这些新数据库,(当然,为了被添加到 AlwaysOn),然后将这些数据库添加到 AlwaysOn,所有这些都是自动的。或者每...1-2小时运行一次?(无需用户干预)

到目前为止,我想出的是这个脚本,它实际上标识了新添加的数据库(尚未在 AlwaysOn 中),然后将它们备份到共享位置。我的下一个任务是找到那些新添加的数据库,并通过所需的各种流程,将它们添加到 AlwaysOn。我想这将涉及某种循环操作。我不是 T-SQL/脚本专家;有没有我可以访问的解决方案或脚本可以做到这一点?(自动将数据库添加到 AlwaysOn)?

请指教,我确定我不是第一个遇到这个问题的人。我在各种 Internet 站点(包括这个站点!)上看过以前的帖子,解决方案要么不正确,要么声明诸如“当然,继续编写脚本!”之类的内容。谢谢,但我需要更多细节。

再次感谢,

-艾伦

DECLARE @name VARCHAR(50) -- database name  
DECLARE @path VARCHAR(256) -- path for backup files  
DECLARE @fileName VARCHAR(256) -- filename for backup  

-- specify database backup directory
SET @path = '\\atel-web-be2\backups\'  

DECLARE db_cursor CURSOR FOR  
select name …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012 availability-groups

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

SQL Server 聚集索引高碎片

我有一个以整数(4 字节)为主键的表。它被定义为一个身份。它也是聚集索引。

插入工作非常好。插入 2000 行后,碎片大约为 4%。

但是,每条记录之后将至少更新 3 次。这会生成超过 99% 的聚集索引碎片(使用默认填充因子)。

或者使用我测试的其他填充因子: - 将聚集索引的填充因子设置为 80(碎片 > 98%) - 将聚集索引的填充系数设置为 50(碎片 > 94%)

所以这看起来没什么帮助......

我在一个新创建的表上测试了每个填充因子设置,其中包含 2000 个插入(以及 3 个以上的更新)

没有查询中不包含主键的选择或更新。

有没有人知道为什么这个索引有这么高的碎片?

通过 ADO.NET 进行更新,这是生成的命令(由 SQL Profiler 跟踪):

exec sp_executesql N'UPDATE MyTable SET MyValue = @MyValue WHERE MyId = @MyId',
N'@MyValue varchar(50),@MyId int',@MyValue='This is some random value',@MyId=1234
Run Code Online (Sandbox Code Playgroud)

其他更新遵循相同的模式(更新其他值,但始终提供@MyId 参数)

感谢您的帮助 :)

index sql-server clustered-index fragmentation sql-server-2012

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

使用德语变音进行全文搜索

我使用德语(德国)作为全文语言创建了一个表格,在设置中我尝试将重音敏感度设置为敏感和不敏感。然而,我得到了以下奇怪的结果。

该表包含以下条目:

  • 穆勒 - 穆勒 - 穆勒
  • 卢金布尔 - 卢金布尔 - 卢金布尔

执行以下搜索

SELECT * FROM dbo.Search WHERE CONTAINS(CNameCombined, 'FORMSOF (INFLECTIONAL,  "Mueller")')
Run Code Online (Sandbox Code Playgroud)

我得到这些结果:穆勒,穆勒,穆勒

执行类似的搜索

SELECT * FROM dbo.Search WHERE CONTAINS(CNameCombined, 'FORMSOF (INFLECTIONAL,  "Luginbuehl")')
Run Code Online (Sandbox Code Playgroud)

我得到零结果。

有谁知道这种行为的原因可能是什么?它似乎适用于某些词,但不适用于所有词。

我在 Windows Server 2012 上运行 SQL Server 2012。

full-text-search sql-server-2012

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

表分区会加速我的查询吗?

我的数据库设置了我们所说的临时表和活动表。目前,我们有大约 200 万行用于名为 products 的表。我们称为制造商的客户将他们的数据加载到临时表中,当他们完成更新、添加、删除数据时,我们会将这些数据推送到我们的实时表中。

这些实时表格为移动应用程序和网站提供网络服务。将数据从 staging 推送到 live 包括删除 live 表中的所有数据和插入 staging 表中的所有数据。所有这些都由ManufacturerID存在于每个表中的一个名为的列分隔。

有些制造商有 500 种产品,有些制造商有 75,000 种产品。基于这一点,我们有时会因为对所有 200 万条记录进行分页而导致 Web 服务响应非常缓慢。从实时表中删除数据似乎也变得非常缓慢。

通过ManufacturerID帮助这种情况来分区我的产品表吗?从我读到的内容来看,这基本上意味着当我查询我的产品时,我只会查询数据库的一小部分,ManufacturerID因此整体响应时间有了巨大的改善。

sql-server partitioning sql-server-2012

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

选择特定 ID 后的行

我有以下查询,它从新闻文章表中选择。由于多种排序因素,我找不到日期的下一页。

我拥有的参数是查询结果集中的最后一个ID,那么我如何才能获取下一页...同样,我没有页面索引,我只有上一个查询结果集中的最后一个ID

SELECT        TOP (20) id, DATEDIFF(SECOND, CONVERT(DATETIME, '1970-01-01', 102), release_date) AS date, DATEDIFF(SECOND, CONVERT(DATETIME, '1970-01-01', 
                     102), edit_date) AS lastchanged, important
FROM            articles AS news WITH (NOLOCK)
WHERE        (status = 1) AND (release_date <= GETUTCDATE())
ORDER BY important DESC, date DESC, lastchanged DESC
Run Code Online (Sandbox Code Playgroud)

这是我的数据的一个例子

  id       date     lastchanged important
187346  1366070400  1345212540  1
187306  1365984000  1345290300  1
187330  1365984000  1342457880  1
187344  1363392000  1342461540  1
187343  1363392000  1342461300  1
187342  1363392000  1342459980  1
187339  1363392000  1342459800  1
187337  1363392000  1342458960  1 …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2012

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

SQL Server 2012 标准版灾难恢复选项?

建议我的 DR 计划的最佳方法。目前我们有一组数据库 (6) 用于我们的应用程序,我们正在构建 DR 和 HA 计划。由于我们是小型企业,我们使用的是 2012 年标准版,因此无法使用 AG 功能。

谢谢你的帮助。

sql-server-2012 disaster-recovery standard-edition

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

如何解决错误 26:“Error Locating Server/Instance Specified”

我正在尝试配置对我的 SQL Server 命名实例(名为 SQL2012)的 TCP 访问。我使用管理工作室连接到数据库引擎。我输入服务器名称:“tcp:localhost\SQL2012”,然后收到此错误消息:

(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

SQL Server 团队的这篇文章似乎非常有用,他们建议使用 PortQry 测试 SqlBrowser 服务。当我这样做时,我会得到以下信息:

Querying target system called:

 localhost

Attempting to resolve name to IP address...


Name resolved to 127.0.0.1

querying...

UDP port 1434 (ms-sql-m service): LISTENING or FILTERED

Sending SQL Server query to UDP port 1434...

Server's response:

ServerName MSWART7
InstanceName SQL2012
IsClustered No
Version 11.0.5058.0
tcp 52329

   ?K   K P?K 5 - 2 1 qK 1 4  rK 8 7 0?    1 …
Run Code Online (Sandbox Code Playgroud)

sql-server sql-server-2012 connectivity

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

如何每 1 秒运行一次 SQL 作业?

我有一个 SQL 作业,它在给定时间处理最少的行。目前它每 10 秒运行一次,这是 Job Scheduler 中可用的最小值。但正因为如此,作业处理使用的表会被许多记录填满。所以我需要每 1 秒运行一次作业。怎样才能做到这一点?请指教。

sql-server sql-server-2012 jobs

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

对等连接重置:套接字写入错误

我们有一个开发 Java (JDBC) 应用程序的供应商说他们收到了错误

对等连接重置:套接字写入错误

他们坚持认为 SQL Server (SQL Server 2012) 出于某种原因强行断开了他们的应用程序服务器。我已经运行 Profiler 跟踪来收集注意力和用户错误消息事件,但没有发现任何帮助。我检查了环形缓冲区并且只有失败的登录 - 没有断开连接。

SELECT CAST(record AS XML) FROM sys.dm_os_ring_buffers
WHERE ring_buffer_type = 'RING_BUFFER_CONNECTIVITY'
Run Code Online (Sandbox Code Playgroud)

Windows 日志没有显示任何有用的信息。这是我应该能够在 SQL Server 中跟踪的错误,还是纯粹是需要网络跟踪或其他什么的网络错误?有任何想法吗?

sql-server jdbc sql-server-2012 connectivity

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