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-9031

Yaroslav's questions

Martin Hope
Yaroslav
Asked: 2024-05-29 23:15:17 +0800 CST

无法在 AWS RDS sql 服务器实例上创建登录触发器

  • 5

为了审核我之前使用的服务器级触发器捕获登录并将其保存到表中的登录,有无数的示例可以做到这一点。

但尝试在 AWS RDS sqlserver 实例上执行相同操作失败,并显示错误无法创建触发器“LogLogons”,因为您没有权限。。我拥有完整的系统管理员权限。我已阅读并检查了其他问题和网站,其中引用了需要启用的 mysql 和 log_bin_trust_function_creators 参数以及其他一些内容(Can I CREATE TRIGGER in an rds DB?),但对于 MS SQL Server 找不到确认是否可以创建服务器级触发器。

找到了这个,但不清楚是否可以创建登录触发器。

CREATE TRIGGER LogLogons ON ALL SERVER WITH EXECUTE AS 'authorized_login' FOR LOGON AS
INSERT DBA.dbo.loginaudit
DEFAULT VALUES;
--DROP TRIGGER LogLogons ON ALL SERVER;
sql-server
  • 1 个回答
  • 26 Views
Martin Hope
Yaroslav
Asked: 2018-08-07 02:49:43 +0800 CST

使用 SIZE 和 FILEGROWTH 的默认值自动生成数据库创建脚本

  • 0

通过混合使用多个 PoSH 脚本,我设法获得了一个工作脚本,该脚本生成、复制和远程执行脚本,为给定数据库及其所有对象、登录名等创建基本结构。但是用于SIZE和FILEGROWTH生产环境中规定的值(比如 1GB 和 512MB)。目标是在开发环境中创建数据库供开发人员使用。因此,初始默认大小和文件增长将绰绰有余。对于 SQL2016,这些值分别为 8MB 和 64MB,如MSSQL Tiger Team此处所述。

有没有办法用这些值而不是为数据库配置的值生成脚本?还是我应该搜索并替换脚本中的值?

sql-server sql-server-2014
  • 2 个回答
  • 404 Views
Martin Hope
Yaroslav
Asked: 2018-05-25 02:48:19 +0800 CST

N'şc' 使用 Latin1_General_CI_AS 归类被认为是 N'C' 的重复键

  • 11

我有一个带有唯一键的表,其中包含一个NVARCHAR(50)列(正确与否,但存在)。因此,当尝试插入Șc或C(插入的顺序无关紧要)时,由于排序规则问题,它会在第二个插入时中断。这是错误:

(1 行受影响)消息 2601,级别 14,状态 1,第 16 行无法在具有唯一索引“IX_TestT”的对象“dbo.testT”中插入重复键行。重复键值为 (C)。

选择回报:

在此处输入图像描述

数据库默认排序规则是Latin1_General_CI_AS. 花了一些时间研究如何解决它,而不改变太多已经存在的结构,但找不到开始工作的方法。尝试了不同的整理和组合,一切都失败了。阅读(此处和此处)有关字符扩展等的信息,但仍然卡住了。这是我用来复制问题的示例代码,请随时修改并推荐任何有助于解决此问题的内容。

CREATE TABLE testT (
    [Default_Collation]     [NVARCHAR] (50) COLLATE DATABASE_DEFAULT,
    [Latin1_General_CI_AS]  [NVARCHAR] (50) COLLATE Latin1_General_CI_AS,
    [Latin1_General_CI_AI]  [NVARCHAR] (50) COLLATE Latin1_General_CI_AI,
    [SQL_Collation]         [NVARCHAR] (50) COLLATE SQL_Latin1_General_CP1_CI_AS);
CREATE UNIQUE CLUSTERED INDEX [IX_TestT] ON [dbo].[testT] ([Default_Collation])
ON [PRIMARY]
GO

INSERT INTO testT
SELECT  N'Șc',  --COLLATE Latin1_General_CI_AS
        N'Șc',  --COLLATE Latin1_General_CI_AS
        N'Șc',  --COLLATE Latin1_General_CI_AS
        N'Șc'   --COLLATE Latin1_General_CI_AS

INSERT INTO testT
SELECT  N'C'    --COLLATE Latin1_General_CI_AS 
        ,N'C'   --COLLATE Latin1_General_CI_AS
        ,N'C'   --COLLATE Latin1_General_CI_AS
        ,N'C'   --COLLATE SQL_Latin1_General_CP1_CI_AS

SELECT * FROM testT;

DROP TABLE testT;
sql-server t-sql
  • 1 个回答
  • 336 Views
Martin Hope
Yaroslav
Asked: 2017-12-14 01:34:19 +0800 CST

重组聚集索引时从辅助读取数据时出现问题

  • 7

我们在 SQL Server 2014 SP2 CU5(3 个节点)中有一个 AOAG。有一个读取已提交快照隔离级别为ON的数据库。我们有一个压缩的大表。我们对该表的一些较大的查询在辅助表中执行。

然后在主节点有一个夜间作业,重新组织几个表上的索引。当它命中上述表的聚集索引时,我们会收到以下错误:

访问数据库 'yyyy' 中表 'xxxx' 中的版本化行时,事务中止。未找到请求的版本化行,因为尝试创建版本的操作不允许可读辅助访问。

在某些时候,大型查询正在执行带有提示的读取READUNCOMMITTED。我认为这是导致此错误的原因,因此我将其删除。但是错误仍然存​​在。

有任何想法吗?

当前设置:

  • 02 辅助处于同步模式
  • 03 次要异步模式

AOAG 当前设置

表详细信息

  • 行数:122.567.668
  • 总空间MB:18.460
  • 已用空间MB:18.238

定义:

CREATE TABLE [dbo].[big_table](
[ID] [int] NOT NULL IDENTITY(1, 1),
1 [int] NULL,
2 [datetime] NULL,
3 [int] NULL,
4 [int] NULL CONSTRAINT [DF_ccc_bUnits] DEFAULT ((0)),
5 [money] NULL,
6 [money] NULL,
7 [int] NULL,
8 [int] NULL CONSTRAINT [DF_ccc_MinDays] DEFAULT ((0)),
9 [int] NULL,
10 [int] NULL,
11 [float] NULL,
12 [money] NULL,
13 [int] NULL,
14 [int] NULL,
15 [nvarchar] (200) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
16 [money] NULL,
17 [money] NULL,
18 [int] NULL,
19 [int] NULL,
20 [money] NULL,
21 [money] NULL,
22 [money] NULL,
23 [money] NULL,
24 [money] NULL,
25 [datetime] NOT NULL CONSTRAINT [DFcccadded] DEFAULT (getdate()),
26 [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
27 [money] NOT NULL CONSTRAINT [DFcccBrf] DEFAULT ((0)),
29 [money] NOT NULL CONSTRAINT [DFcccHB] DEFAULT ((0)),
30 [money] NOT NULL CONSTRAINT [DFcccFB] DEFAULT ((0)),
31 [money] NOT NULL CONSTRAINT [DFcccAllBoards] DEFAULT ((0)),
32 [money] NOT NULL CONSTRAINT [DFcccChildBrf] DEFAULT ((0)),
33 [money] NOT NULL CONSTRAINT [DFcccChildHB] DEFAULT ((0)),
34 [money] NOT NULL CONSTRAINT [DFcccChildFB] DEFAULT ((0)),
35 [money] NOT NULL CONSTRAINT [DFcccChildAllBoards] DEFAULT ((0)),
36 [int] NULL CONSTRAINT [DFcccShow_1] DEFAULT ((0)),
37 [timestamp] NOT NULL,
38 [money] NULL,
39 [money] NULL,
40 [money] NULL,
41 [money] NULL,
42 [money] NULL,
43 [money] NULL,
44 [money] NULL,
45 [money] NULL,
46 [int] NOT NULL CONSTRAINT [DFcccReleaseHour] DEFAULT ((0)),
47 [int] NULL,
48 [int] NULL,
49 [money] NULL,
50 [money] NULL,
51 [float] NULL
) ON [PRIMARY]
WITH (DATA_COMPRESSION = PAGE)
GO
CREATE UNIQUE CLUSTERED INDEX [IXccc] ON [dbo].[big_table] (1, 2) WITH (FILLFACTOR=90, DATA_COMPRESSION = PAGE) ON [PRIMARY]
GO
ALTER TABLE [dbo].[big_table] ADD CONSTRAINT [PKccc] PRIMARY KEY NONCLUSTERED ([ID]) WITH (DATA_COMPRESSION = PAGE) ON [secondary]
GO
CREATE UNIQUE NONCLUSTERED INDEX [IXcccstamp] ON [dbo].[big_table] (36) INCLUDE (1, 2) WITH (FILLFACTOR=100) ON [PRIMARY]
GO
sql-server sql-server-2014
  • 1 个回答
  • 2472 Views
Martin Hope
Yaroslav
Asked: 2017-08-09 04:37:54 +0800 CST

在 SSMS 结果网格、对象资源管理器和其他窗口上使用深色主题

  • 13

有几种方法可以在 SSMS 主编码窗口上使用深色主题,导入 vsettings 文件、应用在配置文件中禁用的深色主题或手动执行。但所有这些选项都不会影响网格结果、对象资源管理器和其他窗口。除了编码之外,这两个是我使用的主要的。

我尝试了通常的Tools>Options>Environment>Fonts and Colors然后在组合框Show settings 上选择:选项Grid Results并使用White作为Item Foreground和Black作为Item Background。保存,重新启动 SSMS 但只有文本是白色的,背景仍然是白色的。

关于正在发生的事情或如何做的任何想法?我找不到对象资源管理器的方法。

SSMS 字体和颜色配置

configuration ssms
  • 3 个回答
  • 28524 Views
Martin Hope
Yaroslav
Asked: 2017-02-03 03:28:32 +0800 CST

SSRS:使用 SSL (https://) 的错误

  • 2

我们有一个 SSRS 2014 已经在生产中,我们现在希望通过将其链接到证书(如“https://...”之类的 URL)来使用安全站点。所以现在 URL 是完全限定的域名(FQDN)。

我们可以通过这个 https URL 正确访问报表管理器。我们必须注册才能使用 Windows 帐户访问。

我们遇到的错误是,当我们导航时,有时我们会传递到一个 http 页面。每次我们从 https 传递到 http 页面时,浏览器 (IE) 都会要求重新注册。

例如,这里我们在一个 https 页面上。当我在报告上单击右键-> 管理时: 在此处输入图像描述

我到达这个页面: 在此处输入图像描述

如果我单击左侧窗格中的选项卡(例如在安全性中),SSRS 会要求我重新连接并跳转到 http 页面。这对我们来说是一个真正的问题。

有什么建议么?

sql-server sql-server-2014
  • 1 个回答
  • 2852 Views
Martin Hope
Yaroslav
Asked: 2016-07-27 15:04:43 +0800 CST

SPID 和 session_id 的区别

  • 3

我正在配置一项工作以获取违规进程的SPID并将其杀死。我正在使用来自@AdamMachanic 的出色sp_Whoiscative和加入登录名和 SPID 和session_id值的sysprocesses之间的混合,因为它们应该是相同的(或者我错了,那是我的错误?)。

我得到了一些我不明白的东西:对于来自 sysprocesses 的相同SPID,我从 whoisactive 结果中得到不同的 session_id值。这里有什么不正确的?

这是我正在使用的代码。在当前日期时间之前 10 秒获取值的过滤器是因为 whoisactive 正在使用参数 @deltainterval 运行,每次运行大约需要 10 秒才能执行。

USE master;

--  Log information about current running processes to table Log_WhoIsActive
    EXEC [master].[dbo].[sp_WhoIsActive]
        @get_full_inner_text = 1,
        @get_plans = 2,
        @get_outer_command = 1,
        @get_transaction_info = 1,
        @get_task_info = 2,
        @get_locks = 1,
        @get_avg_time = 1,
        @get_additional_info = 1,
        @delta_interval = 2,
        @sort_order = '[start_time] DESC',
        @destination_table = 'Log_WhoIsActive_tests';

--compare date from sysprocesses with data gathered on sp_whosiactive
SELECT  dt.collection_time, sp.spid, dt.[dd hh:mm:ss.mss], sp.loginame,
        dt.login_name, dt.session_id
FROM    sys.sysprocesses sp JOIN Log_WhoIsActive_tests dt
            ON sp.loginame = dt.login_name
WHERE   sp.loginame = 'my_login_name'
        AND sp.status = 'runnable'
        AND sp.spid > 50
        AND dt.collection_time > DATEADD(ss, -10, GETDATE());

相同 SPID 的不同 session_id

sql-server t-sql
  • 1 个回答
  • 9800 Views
Martin Hope
Yaroslav
Asked: 2015-11-06 12:05:07 +0800 CST

触发数据库创建或附加操作

  • 5

在我们的开发环境中,我们需要在创建或附加一些数据库时运行一系列操作。清理一些表、重新播种其他表、更改电子邮件等操作。我试图使用 DDL 触发器,实际上在这里发现了一个与我类似的问题。从该代码开始,我正在尝试稍微不同的操作,但甚至无法开始。

下面的代码取自我提到的问题,我只是添加了一个条件来检查数据库名称,如果对应于我需要的那个,那么做一些动作。问题是没有在 IF BEGIN..END 中运行 SET 语句。最后一个 SELECT 使用fn_listextendedproperty不返回任何数据。

IF EXISTS (SELECT NULL FROM sys.server_triggers WHERE name = 'ddl_trig_database')
BEGIN
    DROP TRIGGER ddl_trig_database
    ON ALL SERVER;
END
GO

CREATE TRIGGER ddl_trig_database 
ON ALL SERVER 
FOR CREATE_DATABASE 
AS 
    DECLARE 
        @DatabaseName NVARCHAR(128)
        , @CreatedBy NVARCHAR(128)
        , @CreatedDate NVARCHAR(23)
        , @SQL NVARCHAR(4000);

    SELECT  @DatabaseName = EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]','NVARCHAR(128)');

    IF @DatabaseName = N'asd'
    BEGIN
        SET @SQL = '
            USE ' + @DatabaseName + ';
            EXEC sys.sp_addextendedproperty @name = N''Owner'', @value = N''' + @CreatedBy + ''';
            EXEC sys.sp_addextendedproperty @name = N''StartDate'', @value = N''' + @CreatedDate + ''';';
        EXEC (@SQL);
    END;
GO

CREATE DATABASE asd;
GO

SELECT name, value 
FROM asd.sys.fn_listextendedproperty(default, default, default, default, default, default, default)

DROP TRIGGER ddl_trig_database
ON ALL SERVER;
GO

DROP DATABASE asd;
GO
sql-server trigger
  • 1 个回答
  • 4538 Views
Martin Hope
Yaroslav
Asked: 2015-05-20 05:44:56 +0800 CST

使用sqlcmd备份到NAS

  • 2

在询问之前我一直在寻找可能的重复项,但找不到任何东西。最接近的是Backup SQL Server To Nas但不完全是我的情况。

我们配置了全新的 Synology NAS,由于某些安全需要,我们配置为使用专用用户和不包含在活动目录等中的密码。已经测试没问题,可以登录,查看文件,所有权限都可以。

另一方面,我们通过运行 slqcmd 使用 Ola Hallengren 有用的脚本运行备份。

问题:如何提供用户/密码凭证来访问 NAS?已尝试使用 -U -P 但出现以下错误。然后尝试使用 -S 但也出错。我在这里做错了什么?我想无论我丢失什么都应该是愚蠢的东西,但不可能找到它。

Sqlcmd: The -E and the -U/-P options are mutually exclusive. Process Exit Code 1. The step failed.

sql-server backup
  • 1 个回答
  • 606 Views
Martin Hope
Yaroslav
Asked: 2014-09-05 06:54:14 +0800 CST

监控SQLAgent

  • 4

我检测到 SQLAgent 没有在我们的一台服务器上运行,这是由于意外的内存泄漏错误导致 SQL Agent 关闭。没有配置警报,因此没有应该在那里运行的一项主要工作。有没有办法从 SQL Server 本身监视 SQL Agent?

我做了很多搜索,但找不到方法。我发现了很多关于监控作业、计划等的信息。但不是如何监控 SQL 代理是否停止工作、不重新启动或任何类似的阻止它运行的东西。

PS:我打算再问一个关于内存泄漏问题的问题

sql-server-2008-r2 monitoring
  • 3 个回答
  • 383 Views
Martin Hope
Yaroslav
Asked: 2014-09-03 05:31:49 +0800 CST

最新服务器上的性能较低

  • 8

我们在生产环境中有多个数据库服务器,其中 4 个具有非常相似的硬件配置。Dell PowerEdge R620,唯一的区别是 2 个最新的(3 个月前购买和配置)具有 RAID 控制器 v710、256GB RAM 和 CPU 是 2 个物理 Xeon E5-2680 2.80GHz。旧的(大约 1 年前购买和配置)具有 RAID 控制器 v700、128GB RAM 并在 2 个物理至强 E5-2690 2.90GHz 上运行。BIOS 已更新,所有驱动程序已更新至最新版本,等等。所有运行的 SQL Server 2008R2 Enterprise (SP1) 已更新至最新的 CU 和 Windows 2012R2 Standard。两者都在 200 GB SSD x5 RAID10 上运行。它们每个上只运行一个数据库,使用调用 SSIS 包的作业进行同步。我们的系统管理员已经进行了大量的性能和压力测试,以确保我们没有任何硬件或网络遗漏配置或故障。正如预期的那样,最新的表现出更好的性能结果。到目前为止,一切都很好。

我们遇到的问题可以在 Kibana 的屏幕截图中看到。黄色和橙色是 2 个较新的服务器(表上为 6,7),位于所有其他服务器之下。完全可以看出那两个新服务器的响应时间较慢。不仅如此,那两台服务器的负载也比两台较旧的服务器少一点(浅蓝线和深蓝线 - 表上的 4,5)。

在此处输入图像描述 有几个监控脚本收集有关性能计数器的信息。使用 DMV 和第三方监控工具进行了尽可能多的挖掘,我手头有很多信息。但是应该有(ofc)我在这里遗漏的东西,因为我找不到这个较慢的响应时间的答案。

2 台最新的服务器使用的 RAM 较少,但我想这是预料之中的,与其他较旧的服务器相比,因为它们的负载较低。

| Server Name| Mem_MB |    Mem_GB    | Server_RAM_GB | SQL_max_mem_GB| SQL_min_mem_GB |
|------------|--------|--------------|---------------|---------------|----------------|
|      4     |  41108 | 40.145263671 |     128       |      120      |      16        |
|      5     |  61272 | 59.836425781 |     128       |      120      |      16        |
|      6     |  34117 | 33.317626953 |     256       |      250      |      16        |
|      7     |  33764 | 32.972656250 |     256       |      250      |      16        |

所有服务器的更多RAM配置如下:

| Server Name | Total_Page_File_In_MB | Available_Page_File_MB | Kernel_Paged_Pool_MB | Kernel_Nonpaged_Pool_MB |
|-------------|-----------------------|------------------------|----------------------|-------------------------|
| 4           | 180160                | 130042                 | 249                  | 98                      |
| 5           | 148416                | 77246                  | 249                  | 110                     |
| 6           | 301010                | 260453                 | 132                  | 99                      |
| 7           | 301010                | 260454                 | 143                  | 108                     |

在所有服务器上运行以下查询显示相同的配置参数:

SELECT * FROM master.sys.configurations

我可以继续展示更多信息,但我不完全确定需要什么。关于我应该检查什么的任何线索?

我已经阅读了一份来自 MS Troubleshooting Performance Problems in SQL Server 2008的知识白皮书,并从那里获得了很多 DMV 的查询。

根据要求编辑:

EXEC sp_configure 'max server memory (MB)'

| Server Name | name                   | minimum | maximum    | config_value | run_value |
|-------------|------------------------|---------|------------|--------------|-----------|
| 4           | max server memory (MB) | 16      | 2147483647 | 120000       | 120000    |
| 5           | max server memory (MB) | 16      | 2147483647 | 120000       | 120000    |
| 6           | max server memory (MB) | 16      | 2147483647 | 250000       | 250000    |
| 7           | max server memory (MB) | 16      | 2147483647 | 250000       | 250000    |

至于maxdop我们一直在玩,结果是:

 EXEC sp_configure 'max degree of parallelism'

| Server Name |            name           | minimum | maximum | config_value | run_value |
|:-----------:|:-------------------------:|:-------:|:-------:|:------------:|:---------:|
|      4      | max degree of parallelism |    0    |   1024  |       1      |     1     |
|      5      | max degree of parallelism |    0    |   1024  |       1      |     1     |
|      6      | max degree of parallelism |    0    |   1024  |       1      |     1     |
|      7      | max degree of parallelism |    0    |   1024  |       1      |     1     |
sql-server-2008-r2 configuration
  • 1 个回答
  • 236 Views
Martin Hope
Yaroslav
Asked: 2014-07-25 02:22:29 +0800 CST

创建事件通知时必须创建路由吗?

  • 1

我从服务经纪人开始。已经设法根据这个答案为被阻止的进程设置事件通知,并且它工作得很好。然后我想设置另一个通知死锁,我看到一条CREATE ROUTE声明:

-- create the route for the service
CREATE ROUTE DeadLockNotificationsRoute
    WITH SERVICE_NAME = 'DeadLockNotificationsService',
    ADDRESS = 'LOCAL';
GO

但是在上一个我没有运行这一步,它不包括在内并且有效。查看这里、这里、这里、这里和其他一些地方,我发现创建路线步骤并不总是包括在内。对于动态路由,当然似乎是强制性的。阅读MSDN-Create 路由对我来说并不清楚它是否是强制性的,以及何时应该包括在内。

sql-server-2008-r2 service-broker
  • 1 个回答
  • 245 Views
Martin Hope
Yaroslav
Asked: 2014-05-24 02:37:48 +0800 CST

禁用促进链接服务器的分布式事务的安全隐患

  • 8

我有一个链接服务器,我需要运行以下语句:

INSERT INTO...EXEC linkedserver.sp @parameter

两台服务器 SQL Server 2008R2 SP1。一旦我运行它,我就会得到这个错误:

消息 7391,级别 16,状态 2,第 6 行 由于链接服务器“MY.LINKED.SERVER”的 OLE DB 提供程序“SQLNCLI10”无法开始分布式事务,因此无法执行操作。

搜索错误后,我看到很多建议运行:

EXEC master.dbo.sp_serveroption
     @server = N'[mylinkedserver]',
     @optname = N'remote proc transaction promotion',
     @optvalue = N'false'

我应该注意此操作是否有任何安全隐患?

其他选项是在主服务器上使用链接服务器对象的高级属性:

在此处输入图像描述

sql-server-2008-r2 linked-server
  • 1 个回答
  • 12010 Views
Martin Hope
Yaroslav
Asked: 2014-05-01 02:27:42 +0800 CST

使用日期优化 where 子句

  • 5

我正在尝试优化几个查询,这些查询都在其中一个WHERE子句上使用类似的模式:

AND (DATEADD(DAY
            , ISNULL(a.[due_days], 30) + 30
            , [dbo].[CalcDate]([type], date1, date2, date3, date4, NULL))
            ) < GETDATE()

CalcDate基于type字段值的udf做一些比较,返回一个日期。然后将天数添加到该日期并与当前日期进行比较。为了能够在due_days我想转换操作上使用现有索引以将所有转换应用到GETDATE(),假设我想在sargable可能的情况下进行转换。另外,如果有一些建议可以做些什么来更好地改进 udf 的使用。

t-sql sql-server-2008-r2
  • 1 个回答
  • 547 Views
Martin Hope
Yaroslav
Asked: 2014-04-30 00:37:17 +0800 CST

单个批处理请求是否等同于单个 tsql 请求?

  • 0

我正在研究一些性能指标,每条建议都包括监控 Batch Requests/sec。但是,也许是一个愚蠢的问题,单个批处理请求是否恰好对应于一个 tsql 语句?假设它恰好包含一个选择或一个更新等。因此,例如,具有 3 个选择和 2 个插入的存储过程会触发 5 个批处理请求。或者,正如我所想,一个批处理请求可以包括例如一个完整的存储过程、一个函数、几个选择/更新/插入语句等。

我能找到的都是类似于这些描述:

  • TechNet每秒接收的 Transact-SQL 命令批次数。此统计信息受所有约束(例如 I/O、用户数量、缓存大小、请求的复杂性等)的影响。高批量请求意味着良好的吞吐量。
  • 了解 SQL Server 如何执行查询 批处理请求此请求类型仅包含要执行的批处理的 T-SQL 文本。这种类型的请求没有参数,但显然 T-SQL 批处理本身可以包含局部变量声明。如果您在具有空参数列表的 SqlCommand 对象上调用任何 SqlCommand.ExecuteReader()、ExecuteNonQuery()、ExecuteScalar()、ExecuteXmlReader()(或它们各自的异步等效项),则这是 SqlClient 发送的请求类型。如果您使用 SQL Profiler 进行监控,您将看到一个 SQL:BatchStarting 事件类
performance t-sql
  • 1 个回答
  • 531 Views
Martin Hope
Yaroslav
Asked: 2014-04-05 05:05:12 +0800 CST

在 where 子句上使用 CHECKSUM

  • 1

我正在经历一个很长的存储过程,我发现这个,作为一个很长的查询的一部分:

SELECT ....
FROM   ---
WHERE  condition
  AND  CHECKSUM(r.roomprovider_id) <> CHECKSUM(ISNULL(br.roomprovider_id, r.roomprovider_id))

roomprovider_id是一个INT值

第一次看到它时,我完全不知道这样做的目的是什么。我进行了一些搜索,阅读了技术页面上 CHECKSUM 的定义以及更多来源,但无法理解在CHECKSUM此处使用的意义。

我不是在寻找能准确解释这种情况的答案(如果可能的话,甚至更好),但我会对解释这种使用方式的意义的答案感到满意checksum。

t-sql sql-server-2008-r2
  • 1 个回答
  • 364 Views
Martin Hope
Yaroslav
Asked: 2014-02-19 03:53:43 +0800 CST

在恢复多个文件之前创建数据库

  • 1

我有几个数据库,其中大多数有多个文件(数据和日志)和多个 diff 和 trn 备份。我已经有一个恢复脚本(已安排并在其他服务器上工作),它获取所有需要的文件并通过 UNC 路径恢复它们。开始有一个检查,验证数据库是否存在,如果不存在,则抛出错误。但我想改为创建数据库然后恢复它。我不想使用声明中的MOVE选项RESTORE。我进行了一些 搜索,发现的内容无法满足我的需求。

那么,我如何创建一个CREATE语句来匹配我将在下一步恢复的内容呢?也许是一个愚蠢的问题,但找不到如何去做。

编辑

从 Aaron 的评论中,我现在明白了为什么我不能阻止使用MOVE. 但是我应该用所有需要的文件组创建数据库,对吗?是这样的:

CREATE DATABASE [Testdb] ON  PRIMARY 
    ( NAME = N'Testdb', FILENAME = N'F:\SQLDBs\Testdb.mdf' , SIZE = 102400KB ,
      MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB ), 
 FILEGROUP [TEST_DATA] 
    ( NAME = N'Test_Data', FILENAME = N'F:\SQLDBs\Test_Data.ndf' , SIZE = 5242880KB ,
      MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB ), 
 FILEGROUP [TEST_DATA2] 
    ( NAME = N'Test_Data2', FILENAME = N'F:\SQLDBs\Test_Data2.ndf' , SIZE = 5242880KB ,
      MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB ), 
 FILEGROUP [TEST_INDEX] 
    ( NAME = N'Test_Index', FILENAME = N'F:\SQLDBs\Test_Index.ndf' , SIZE = 5242880KB,
      MAXSIZE = UNLIMITED, FILEGROWTH = 1048576KB )
 LOG ON 
    ( NAME = N'Testdb_log', FILENAME = N'G:\SQLLogs\Testdb_log.ldf' , SIZE = 1048576KB,
      MAXSIZE = 2048GB , FILEGROWTH = 1048576KB )
GO
ALTER DATABASE [Testdb] SET COMPATIBILITY_LEVEL = 100
GO
sql-server-2008-r2 backup
  • 1 个回答
  • 183 Views
Martin Hope
Yaroslav
Asked: 2014-02-06 06:12:53 +0800 CST

循环错误日志的作业

  • 3

几周前我问了这个问题错误记录了各种问题并得到了我需要的答案。根据答案和一些阅读材料,我想创建以下工作:

  • 一旦错误日志达到 Mb 大小或扩展到 2 周,就循环错误日志
  • 一旦我们达到存档错误日志文件的限制(现在我们有默认值,6),将最旧的错误日志移动到不同的位置

在回答我之前的问题时,我得到了我在最后发布的 powershell 片段,以获取错误日志的大小。但这是我第一次尝试使用 powershell 做一些事情,所以我什至不知道从哪里开始。对设置这些工作有帮助吗?也许不需要 powershell,可以使用 CmdExec 或 tsql 来完成?不是我知道 CmdExec,只是询问其他方法。最好的一个是 tsql,因为我对它有更多的经验。

$SqlServer = New-Object Microsoft.SqlServer.Management.Smo.Server("YOUR_SQL_SERVER_NAME")
$SqlServer.EnumErrorLogs() |
    Select-Object Name, @{Name = "SizeMB"; Expression = {[System.Math]::Round($_.Size/1024/1024,2)}}
maintenance sql-server-2008-r2
  • 1 个回答
  • 362 Views
Martin Hope
Yaroslav
Asked: 2014-01-31 07:48:32 +0800 CST

在通知操作员任务上使用@@servername 和 db_name()

  • 2

我正在制定维护计划,但在出错时我添加了带有一些文本的“通知操作员任务”。但我希望能够添加如下内容:

在 MyDatabase\Instance_name 上备份失败...blablabla

我想我应该以某种方式使用 @@SERVERNAME 和 DB_NAME(db.database_id) 但到目前为止找不到如何去做,也许是微不足道的但没有找到运气。

sql-server sql-server-2008-r2
  • 1 个回答
  • 1145 Views
Martin Hope
Yaroslav
Asked: 2014-01-28 00:00:40 +0800 CST

配置时的单用户模式

  • 3

我正在尝试查找我们实例上的数据库何时配置为SINGLE USER MODE但找不到该信息。使用 tsql 或 GUI。也许不可能知道这些信息?这些操作是否记录在某处?还是我们需要强制执行此日志?

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