我们使用一家大公司作为我们的服务提供商。
那家服务公司的技术人员正在非常努力地安装一种叫做 的东西Avamar SQL Agent,据称它将用于替换我旧的可靠的完整、差异和事务日志备份。有人告诉我,它会不断监视 mdf、ndf 和 ldf 文件的任何更改,然后将更改的项目(页面、???)写入某处 (???)。
一旦新技术得到证实,我就完全支持新技术,但我对这种方法持怀疑态度,即我将不再需要采用 SQL Server 本地压缩备份(同样是完整、差异和 tlog)。
到目前为止,我已经采取的立场是,除非并且直到他们能够通过测试向我证明它不会弄乱我的 mdf、ndf 和 ldf 文件并且仍然可以恢复,否则我不会祝福这次冒险。在这里,我不知道什么或谁会做恢复本身……它是 SQL Server 恢复的某种派生,一些 Avamar 恢复,某种组合等。
有没有人对这个产品有任何经验?
下面的选择返回我所有用户拥有的所有项目的数组。
WITH user_projects AS
(SELECT
u.id as user_id
,COALESCE(array_agg(DISTINCT pa.project_id), '{0}'::integer[]) as project_ids
FROM users u
LEFT JOIN project_assignments pa on pa.user_creator_id = u.id
GROUP BY u.id
)
user: 1, project_ids: {1, 2}
user: 2, project_ids: {3, 4}
Run Code Online (Sandbox Code Playgroud)
使用该选择,我想进行报告,该报告将为每个用户显示 12 个月的摘要。
SELECT
to_char(pk.created_at,'Mon') as mon
,extract(year from pk.created_at) as yyyy
,up.user_id
,COALESCE(count(distinct pk.keyword_id), 0) as total_keywords
FROM user_projects up
LEFT JOIN project_keywords pk on pk.project_id = ANY(up.project_ids::int[])
GROUP BY up.user_id, up.project_ids, 1, 2
Run Code Online (Sandbox Code Playgroud)
输出:
mon: sept, yyyy: 2014, user_id: 1, …Run Code Online (Sandbox Code Playgroud) 我在服务器上有很多 SQL Server 作业。每当完成任何作业执行时,我都需要执行 SP。一种困难的方法是在每个调用该 SP 的作业上创建一个步骤。
有没有简单的方法可以做到这一点?作业完成后,SQL Server 是否执行任何 SP 或任何内容?
我们正在尝试在 Windows 2012 R2 操作系统上从 SQL Server 2012 迁移到 SQL Server 2014。
升级后,我们正在进行性能测试,并观察到仅从一个表(根本没有连接)运行简单查询的巨大差异。
该查询在 SQL Server 2012 中执行时间为 4 秒,但在 SQL Server 2014 中执行时间超过 1 分钟。
SQL Server 安装在 2 个不同的 VM(不同的 IP 地址)上。他们在每台机器上只有一个 SQL Server 实例。
两台机器之间的处理器/内存/硬盘空间相同。
这些机器安装了相同的应用程序。我们直接从 SQL Server Management Studio 运行相同的选择查询。
performance sql-server upgrade sql-server-2012 sql-server-2014
在安装了 SQL Server LocalDB 2014 的机器上,我正在寻找 SQLCMD.EXE 文件,但在任何地方都找不到它。有没有办法单独安装?
不幸的是,我不是机器的本地管理员,所以我不喜欢 MSI ...
找到此链接https://www.microsoft.com/en-us/download/confirmation.aspx?id=36433,但不能使用 MSI ... 也许复制可执行文件和 dll 可以解决问题。
C:\Program Files\Microsoft SQL Server\110\Tools\Binn 从安装了 SSMS 的另一台计算机复制文件 SQLCMD.EXE、BATCHPARSER.DLL 和 SQLCMD.RLL 后,我仍然收到错误:
Microsoft SQL Server Native Client 11.0:未找到数据源名称且未指定默认驱动程序。
运行sqlcmd -S np:\\.\pipe\LOCALDB#F8040C8F\tsql\query。
在安装较新版本后安装以前版本的 SQL Server 实例时,是否有任何需要注意的问题?例如,将 2008 安装到具有现有 2012 实例的服务器上?
我找不到特定于这种情况的陈述,但这似乎有风险。
我试图找到找到一个点到点表的最小距离的最快方法。唯一需要注意的是,我试图找到最小距离的点表是 150K 单点。
或者更好地解释表 A 有 150K 行/点,表 B 1500 点。我想知道表 A 中的每一行与表 B 中列出的所有行的最小距离是多少。
我有一个进行距离计算的函数,作为表 A 的附加列。它只需要很长时间。表 B 有一个空间索引。
这就是我所拥有的:
select a.*,
dbo.fxn_distance(geography::STPointFromText('POINT(' +
CAST([Long] AS VARCHAR(20)) + ' ' + CAST([Lat] AS
VARCHAR(20)) + ')', 4326)) as DistAway
from Table A a
Run Code Online (Sandbox Code Playgroud)
我的功能:
create function fxn_distance
(@pointTableA geography
)
returns float
as
begin
declare @distance float
select top 1 @distance = b.GeoLocation.STDistance(@pointTableA)
from TableB b
where geolocation.STDistance(@pointTableA) is not null
order by geolocation.STDistance(@pointTableA)
return @distance
end
Run Code Online (Sandbox Code Playgroud)
对不起,如果我完全是一个新手,我知道解决方案可能很简单,但我无法解决这个问题。所以希望澄清一下:我需要通过表 A …
作为最佳实践,我正在尝试安排一个活动,其中所有 SQL 代理作业都应将输出记录到文本文件中。
手动我可以为单个工作执行此操作。但是我正在通过脚本或任何好的方法寻找更好的方法,我可以为每个服务器大约 80-90 个作业的多个作业进行此更改。
此外,我必须在 QA、UAT 和 prod 中执行此操作,涵盖 100 多台服务器。
请分享您的经验或任何有用的链接,这是如何以最佳方式实现的,因为生成输出的日志文件的路径应该在服务器/作业之间通用。
查询 sys.partitions 可以返回表的近似行数。
我注意到,无论实际内容如何(即使是空分区),这都会为所有分区返回相同的行数。
该表具有聚集列存储索引,并且几乎所有列上都创建了统计信息。每次数据加载后,每天都会更新统计信息。该表按日期分区。
sys.partitions 查询:
SELECT convert(date, convert(varchar,rv.[value])) as partitionDate, p.rows as syspartitions_RowCount
FROM sys.tables t
join sys.schemas sc on sc.schema_id = t.schema_id
JOIN sys.partitions p ON p.[object_id] = t.[object_id]
JOIN sys.indexes i ON i.[object_id] = p.[object_id]
AND i.[index_id] = p.[index_id]
JOIN sys.data_spaces ds ON ds.[data_space_id] = i.[data_space_id]
LEFT JOIN sys.partition_schemes ps ON ps.[data_space_id] = ds.[data_space_id]
LEFT JOIN sys.partition_functions pf ON pf.[function_id] = ps.[function_id]
LEFT JOIN sys.partition_range_values rv ON rv.[function_id] = pf.[function_id]
AND rv.[boundary_id]+1 = p.[partition_number]
WHERE p.[index_id] …Run Code Online (Sandbox Code Playgroud) 我想在 TSQL 中调试。当我开始调试时,会弹出以下消息框。在 SSMS v17.2 中
然后我看到这个消息:
在 Microsoft Visual Studio 2015 服务器资源管理器中,同样的错误:
然后我看到这个消息:
谢谢你!
sql-server ×9
backup ×1
debugging ×1
installation ×1
instance ×1
jobs ×1
join ×1
partitioning ×1
performance ×1
postgresql ×1
spatial ×1
sqlcmd ×1
ssms ×1
t-sql ×1
upgrade ×1