我正在将 SQL Server DB 迁移到新实例。
有人告诉我,可以从系统目录中的可用备份动态构建 RESTORE 脚本。
有谁知道一个示例脚本来做到这一点?
谢谢!
我收到了以下有关 SSAS 内存设置的警报:
警报:
SSAS 2014:无效的 TotalMemoryLimit 配置来源:
MSSQLSERVER 路径:SASBI01
警报时间:9/15/2015 5:38:50 PM告警描述:
为SSAS实例配置的TotalMemoryLimit(307.1728515625 GB)超过了操作系统必要功能所需的配置阈值,可能导致系统不稳定或故障。服务器上的总内存: 0 GB 总内存
使用量:0 GB 非 SSAS
进程
使用的内存:-3.89069747924805 GB SSAS 使用的
内存:3.89069747924805 GB SSAS内存限制下限:249.57795715332 GB (0%)
S3725 GB1 上限上限(0%)
SSAS 中这些内存设置的一个好的起点是什么?请看下图。
该服务器仅运行 SSAS。
我有一些流程需要在开始之前采取不同的步骤。例如:
禁用对外键的检查约束:
select 'alter table '+fk.table_schema+'.'+fk.table_name
+' NOCHECK CONSTRAINT '+fk.CONSTRAINT_NAME
from SAProduct.information_schema.table_constraints fk
join SAProduct.information_schema.tables t
on t.table_schema = fk.table_schema
and t.table_name = fk.table_name
WHERE constraint_type='FOREIGN KEY'
Run Code Online (Sandbox Code Playgroud)
这将产生一个很大的语句列表,我只复制 3 个:
use saproduct
go
alter table dbo.tblProdClassificationCode NOCHECK CONSTRAINT FK_tblProdClassificationCode_tblProdClassification
alter table dbo.tblProdClassificationCodeDescr NOCHECK CONSTRAINT fk_ProdClassificationCodeDescr_ProdClassificationCode
alter table dbo.tblProdClassificationCodeGenerate NOCHECK CONSTRAINT fk_ProdClassificationCodeGenerate_ProdClassification
Run Code Online (Sandbox Code Playgroud)
如果我要一次性运行它,我将如何找到我的位置?我正在处理哪张桌子,下一张是哪一张?
删除也是一样的:
select 'DELETE FROM '+table_schema+'.'+table_name
from saproduct.information_schema.tables
where table_name like 'tbl%'
Run Code Online (Sandbox Code Playgroud)
上面的脚本将生成以下语句集:
use saproduct
go
DELETE FROM dbo.tblBLanguage
DELETE FROM dbo.tblBLgCategoryXRef
DELETE FROM dbo.tblBLgSegmentXRef
DELETE FROM dbo.tblProdClassification
DELETE …Run Code Online (Sandbox Code Playgroud) 我需要提取在我的实例中可用的存储过程列表。我使用以下 T-SQL 语句来获取给定数据库中的存储过程。
select *
from MyDatabase.information_schema.routines
where routine_type = 'Procedure'
Run Code Online (Sandbox Code Playgroud)
有没有脚本可以获取所有的存储过程或者通过存储过程名称来检查存储过程的数据库名称?
object_definition和sp_helptext都返回存储过程的源代码 - 但是如何object_definition像sp_helptext当前那样使用和获取包含换行符的源代码?
例如在下面的代码中,我创建了一个存储过程:
if OBJECT_ID('usp_radhe') is not null
drop procedure usp_radhe
go
-- this procedure is just a test
-- it just returns a date in the past
-- how will I get its source code?
create procedure usp_radhe as
begin
select dateadd(dd,-31,GETDATE())
end
Run Code Online (Sandbox Code Playgroud)
使用sp_helptext我可以很好地查看源代码:
sp_helptext 'usp_radhe'
Run Code Online (Sandbox Code Playgroud)
使用object_definition我在一行中获得源代码,这对我不利:
select OBJECT_DEFINITION(object_id('usp_radhe'))
Run Code Online (Sandbox Code Playgroud)
我刚刚创建了一个代理,我需要向运行 sql server 代理的帐户授予对代理的访问权限。它可能是一个域帐户。
如何使用 T-SQL 找到它?
我有一个脚本来生成创建表脚本。你可以在我对这个问题的回答中看到它。
关于这个问题here,看到答案有关于如何向表添加分区以及如何从表中删除分区的示例,我想看看任何阶段的脚本。
我找到了这个链接:如何找到应用于表的分区函数文本
如何生成用于创建分区函数和分区模式的脚本?
我正在编写一个脚本来生成create partition function
如下所示的 ,但它仅适用于我自己的PF_year分区函数,因为was很难克服sys.partition_range_values具有sql_variant数据类型作为值的事实。
当我使用案例时,出现以下错误:
消息 206,级别 16,状态 2,第 35 行
操作数类型冲突:int 与日期不兼容
然后在他的精彩回答Dan Guzman 中,向我们展示了SQL_VARIANT_PROPERTY一些我不知道的奇妙事物,现在我是一名新的 DBA 和新人。
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SELECT
RADHE = 'CREATE PARTITION FUNCTION' + space(1) + quotename(spf.name) +
'(' +
COALESCE(baset.name,'data type not found') + ')' + CHAR(13) +
'AS RANGE ' + CASE WHEN CAST(spf.boundary_value_on_right AS …Run Code Online (Sandbox Code Playgroud) database-design sql-server optimization partitioning sql-server-2014
当我从Glenn Berry运行以下查询时
-- Hardware information from SQL Server 2016 (Query 18) (Hardware Info)
SELECT cpu_count AS [Logical CPU Count], scheduler_count, hyperthread_ratio AS [Hyperthread Ratio],
cpu_count/hyperthread_ratio AS [Physical CPU Count],
physical_memory_kb/1024 AS [Physical Memory (MB)], committed_kb/1024 AS [Committed Memory (MB)],
committed_target_kb/1024 AS [Committed Target Memory (MB)],
max_workers_count AS [Max Workers Count], affinity_type_desc AS [Affinity Type],
sqlserver_start_time AS [SQL Server Start Time], virtual_machine_type_desc AS [Virtual Machine Type],
softnuma_configuration_desc AS [Soft NUMA Configuration],
sql_memory_model_desc -- New in SQL Server 2016 SP1 …Run Code Online (Sandbox Code Playgroud) 为了我自己的记录,我在其中一台服务器上有一张表,我喜欢在其中保存我的活动和脚本
表定义是:
IF OBJECT_ID('[dbo].[activity]') IS NOT NULL
DROP TABLE [dbo].[activity]
GO
CREATE TABLE [dbo].[activity] (
[dt] DATE NOT NULL,
[i] SMALLINT NOT NULL,
[activity] NVARCHAR(max) NOT NULL,
[script] NVARCHAR(max) NULL
CONSTRAINT [DF__activity__script__6E01572D] DEFAULT (NULL))
GO
CREATE CLUSTERED INDEX [pk_activity]
ON [dbo].[activity] ([dt] desc, [i] desc)
Run Code Online (Sandbox Code Playgroud)
由于该表位于DBA我DBA_SERVER服务器上的数据库中,因此我从本地计算机创建了一个linked server到该表,DBA_SERVER以便我可以将脚本插入到我的表中。
这就是我将脚本插入我的表的方式,该脚本位于我的本地机器上:
INSERT INTO [MY_DBA_SERVER].[DBA].[dbo].[activity]
([dt]
,[i]
,[activity]
,[script])
SELECT
DT=cast ('3 may 2018' as date)
,I=1100
,ACTIVITY='MOVE APPLICATION ROWS - the Ids work'
,[script]=BulkColumn
FROM …Run Code Online (Sandbox Code Playgroud) 我有一家第三方公司过来建立 ssas 数据库来生成报告。
他们做到了,但现在 DBA 想要查看,但我没有权限,甚至无法查看这些数据库,如下图所示。
我可以授予自己管理员权限吗?
我是系统管理员。有一个名为SQLDBA和的 AD 组
当右键单击 server-properties-security-Add- 然后添加我的 AD 组时,SQLDBA它说我没有alter服务器对象的权限,如下图所示。
我之前已将该sqldbaAD 组作为管理员添加到该框中。
“mycompany\MMiorelli”用户无权更改“myserver\instance”对象,或者该对象不存在。(Microsoft.AnalysisServices.AppLocal.Core)
纽扣:
好的
sql-server ×10
scripting ×2
ssas ×2
t-sql ×2
automation ×1
blob ×1
bulk-insert ×1
catalogs ×1
cpu ×1
dmv ×1
memory ×1
metadata ×1
monitoring ×1
openrowset ×1
optimization ×1
partitioning ×1
permissions ×1
powershell ×1
restore ×1
ssas-2016 ×1
ssms ×1