标签: sql-server-2008

SQL Server 帮助表?

如果我在 SQL Server 中编写:

SELECT number FROM master..spt_values WHERE Type = 'P' ORDER BY Number
Run Code Online (Sandbox Code Playgroud)

我得到了一个我已经可以使用的序列号列表,而不是用序列号写一个表格。

这对于小连接、行编号等非常有帮助。

我想知道是否还有其他像这样的隐藏表也可以帮助我做其他事情?例如,我可能想要select someNonImportantTextColmn from master..unknown并应用我的功能。

我在哪里可以找到这些“帮助表”的完整列表?

sql-server-2008 sql-server

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

插入 0 次写入?

我最近一直在查看一些 SQL Profiler 跟踪记录,我看到了一些我不明白的东西。我正在运行简单的 INSERT 命令:

INSERT INTO Foo (ForeignID, FileExtension, MimeType) VALUES (1, 'FOO', 'Application/Foo')
Run Code Online (Sandbox Code Playgroud)

SQL Profiler 始终显示 0 次写入和 2 次读取。INSERT 上怎么可能没有任何写入?还是我误解了分析器在说什么?

为了完整起见,这是我正在使用的表定义:

CREATE TABLE [Foo](
[ID] [int] IDENTITY(1,1) NOT NULL,
[ForeignID] [int] NOT NULL,
[FileExtension] [nvarchar](32) NOT NULL,
[MimeType] [nvarchar](96) NOT NULL,
CONSTRAINT [PK_ID] PRIMARY KEY CLUSTERED 
(
[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

sql-server-2008

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

获取按月和年分组的计数

我正在尝试报告电子邮件消息系统中的数据,并希望通过month/year.

SELECT YEAR(crdate) AS y,
       MONTH(crdate) AS m,
       COUNT(*) AS tally
FROM   MESSAGE
WHERE  YEAR(crdate) = 2012
       AND SUBJECT <> 'Welcome' --exclude default messages
GROUP BY
       YEAR(crdate),
       MONTH(crdate)
Run Code Online (Sandbox Code Playgroud)

这就是我所拥有的,但它的限制在于我需要手动更改年份。这可以升级为以这种month/year格式输出表格中的所有日期吗?

删除年份会将可能数年的所有月份聚集在一起并扭曲数据。我希望从那个特定的month/year.

sql-server-2008 sql-server

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

SQL Server 疑难解答复制和长时间运行的 fn_dblog 查询

我试图让(拉)事务复制再次为订阅者工作。

目前,在复制监视器中,我在发布者到分发者选项卡和分发者到订阅者选项卡中看到消息。

在订阅者历史记录的分发者中,我看到“发布 'XX' 的并发快照不可用”。在发布者到分发者的历史记录中,我看到日志读取器代理正在初始化,然后等待服务器的响应(每 5 分钟再次记录一次消息)。

最终执行sp_replcmds失败。

我认为可能有许多未复制的事务导致日志读取器代理挂起。遵循LogReader 超时故障排除

我跑了dbcc opentran然后试图跑

select  [Transaction ID], count([Transaction ID]) as 'Count log entries'
from::fn_dblog('42006:31381:2',null) 
where [Description] = 'REPLICATE'
group by [Transaction ID]
Run Code Online (Sandbox Code Playgroud)

此查询在超过 40 分钟后未返回任何结果。此外,当我刚跑步SELECT count(*) FROM ::fn_dblog(NULL, NULL)时,很长一段时间(20 分钟)后我都没有得到结果。

我开始认为我的事务日志的大小有问题,或者某种损坏,或者什么。

任何帮助将不胜感激。

replication sql-server-2008 transaction-log transactional-replication

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

用于生产数据库的 SSD

我正在寻找一种解决方案,以 [显着] 提高系统上的企业数据库性能,该系统需要每秒支持数千个事务(插入和大型选择)。除了数据库/查询优化,我们也在寻求硬件改进。

我需要有使用 SSD 驱动器存储数据库的数据库管理经验的人。你用的是什么RAID配置?RAID1 看起来是一个不错的选择,也许可以与另一种以冗余为中心的配置相结合,我想 SLC 技术也将是 SSD 驱动器的首选。

问题是:您使用的是什么类型的 SSD 驱动器(品牌、型号)?它们在 RAID 中是如何组织的,您取得了哪些改进以及您遇到了多少(主要)问题?您对当前 SSD 驱动器的可靠性有多担心?您会建议将它们用于数据库(意思是关键)存储吗?

此外,已实施解决方案的大致价格(当然是在您实施该解决方案时)是多少?

也许这篇文章还可以提供有关 SSD + 数据库关系如何随着时间的推移演变的历史数据。

PS:如果重要的话,我们目前使用的是 SQL Server 2008 R2。数据库大小:此时超过 400GB,但我的问题不仅与我的具体情况有关。

谢谢。

在这里找到了一篇有趣的文章:http : //www.remote-dba.net/t_in_memory_cohesion_ssd.htm

performance sql-server-2008 sql-server

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

SQL Server 是否关心帐户在 Active Directory 中的位置?

我们的 Active Directory 正在进行一些维护工作,我的主管问我 SQL Server 是否关心安全和服务帐户的位置。

我告诉他我认为没有,但我不是 100% 确定。

那么,对于用于控制对数据库的访问的服务帐户和安全组,SQL Server 是否关心它们在 Active Directory 中的位置?

sql-server-2008 sql-server active-directory

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

如何从 SQL Server 2000 复制到 SQL Server 2008 R2?

我有 SQL Server 2000 作为发布者和 SQL Server 20008 R2 作为订阅者。

我想将数据从 SQL Server 2000 复制到另一台机器上的 SQL Server 2008 R2。

某些表上未定义主键字段,因此无法选择事务复制。

我认为合并复制不是一种选择,因为订阅服务器 SQL Server 版本高于发布服务器。

我能做什么?

replication sql-server-2008 sql-server sql-server-2000 merge-replication

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

接收错误 Error: 18059, Severity: 20, State: 1 in the SQL Logs

我正在使用 SQL Server 2008 Sp3

最近我在 SQL 日志中遇到错误:

错误:18059,严重性:20,状态:1
。连接已被删除,因为打开它的主体随后假定了一个新的安全上下文,然后尝试在其模拟的安全上下文下重置连接。不支持此方案。请参阅联机丛书中的“模拟概述”。

我通过 Profiler 找到了相关的原始服务器和应用程序。

我搜索并发现有人说我需要更改应用程序连接字符串中的连接池

以下是相关Web.Config文件:

<?xml version="1.0"?>
<appSettings>
    <add key="Main.ConnectionString" value="Data Source=db-002\db2;Initial   
Catalog=APPDB;TRUSTED_CONNECTION=YES"/>
    <add key="ConnectionHash" value="==QMr1meolHO3YWdTNFOzcTO"/>
    <add key="Database" value="[APPDB]"/>
    <add key="UseApprole" value="True"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

我在我们的测试环境中将其更改为以下内容:

<?xml version="1.0"?>
<appSettings>
    <add key="Main.ConnectionString" value="Data Source=db-002\db2;Initial 
Catalog=APPDB;TRUSTED_CONNECTION=YES;Pooling=false"/>
    <add key="ConnectionHash" value="==QMr1meolHO3YWdTNFOzcTO"/>
    <add key="Database" value="[APPDB]"/>
    <add key="UseApprole" value="True"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

我已经重置了应用程序、服务和 IIS。检查应用程序,它的工作原理。

有一段时间我没有再收到这些错误,但 3 小时后它们又恢复了。

谁能给我一个想法我能做什么?

sql-server-2008 errors

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

自动重启 SQL Server 2008

是否有一种“最佳”方法可以定期自动重新启动 SQL Server?我读到我可以创建一个批处理文件来净启动,净停止批处理文件中的代理和服务并安排它,但我很好奇是否有更好的方法来做到这一点。

请不要介意这表明一个更大的操作问题,我已经争论了一个月,我们已经结束了。

谢谢 :)。

sql-server-2008 sql-server

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

如何在 SQL 代理作业中成功运行批处理文件?

我有一个 SQL 代理作业,它在 PDF 文件中生成特定报告,然后将 PDF 复制到网络目录,然后删除源目录中的 PDF 文件。

SQL 作业包括 2 个步骤: 1. 生成报告 2. 将报告复制到网络位置。

对于第 2 步,我制作了一个 bat 文件来处理 pdf 文件的复制和删除。

bat文件如下:

set source_dir=C:\Reports\Energie\Uur
set dest_dir=\\KWS2-WEB-SERVER\Share\Reports\Uur

C:\Windows\System32\Robocopy.exe %source_dir% %dest_dir% /MOV /Z
Run Code Online (Sandbox Code Playgroud)

但是,当我运行我的作业时,它挂在第二步。状态只停留在“执行中”。

这是我在步骤中声明的行(要执行的 bat 文件的位置):

cmd.exe /c "C:\Reports\rapport_uur_copy.bat"
Run Code Online (Sandbox Code Playgroud)

我的工作设置如下:

第1步

类型:操作系统 (CmdExec) 成功:转到下一步

On Failure:退出作业报告失败

第2步

类型:操作系统 (CmdExec)

成功时:辞职报告成功

On Failure:退出作业报告失败

一些事实:

  • 我对网络目录有读/写权限
  • 我以管理员帐户(登录用户,默认)运行这些步骤
  • 步骤 1 成功
  • 我运行 Windows Server 2008 R2 标准版
  • 我有 SQL Server 2008 R2
  • 当我从 cmd 手动运行脚本时,它可以工作(在管理员帐户下)。

sql-server-2008 sql-server-agent jobs

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