我看到 2005/2008/2012 都可以共存,但在 2000 和 2012 上找不到任何东西。
我正在使用 Sql Server 2012 导入和导出数据 (64) 我不确定我应该选择什么选项来做我想做的事。我只是希望能够将数据库中的所有数据导出到一个文件中,然后我可以将其发送到我的另一台机器,然后导入数据库。
数据库只包含表。
几天前,我向 SQL Server 2012 数据库添加了几个索引以帮助提高性能。今天,我们的带有 TempDB 的分区空间不足。TempDB 从不到 10 GB 增加到 38 GB。运行后:
SELECT SUM(unallocated_extent_page_count) AS [free pages],
(SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;
Run Code Online (Sandbox Code Playgroud)
看起来我在 tempDB 中有大约 22GB 的可用空间。我知道 TempDB 用于执行 SQL Server 完成的所有排序,但现在它导致了空间问题。如果 TempDB 有那么多可用空间,为什么它会抱怨服务器上的空间不足?我能做些什么来防止这个问题再次发生?
我需要在 2 个单独的数据中心运行一个带有 2 个主表的 sql server 日志数据库,同时写入两个数据中心。
我的想法是将数据库恢复到新的数据中心,然后将身份列重新设定为 -1 并将增量设置为 -1,这样在需要合并数据时就不会出现重复的 ID。DATACENTRE1 为正整数,DATACENTRE2 为负整数
-1 的增量会导致任何问题吗?
database-design sql-server auto-increment identity sql-server-2012
背景
我有几个设备,每个设备都有几个传感器。我不时地记录这些并将它们存储在下面描述的表中。当有人请求一个网页时,我会一个接一个地获取这些值中的几个(最新记录的)并将它们显示给用户。但是目前这需要很长时间,因为需要提取的值太多,每个值的提取需要大约 8 毫秒,并且我们总共讨论了大约 300 毫秒的总页面加载时间增加 - 对于一个相对较好的页面。
CREATE TABLE [dbo].[SensorValues](
[DeviceId] [int] NOT NULL,
[SensorId] [int] NOT NULL,
[SensorValue] [int] NOT NULL,
[Date] [int] NOT NULL, --- stored as unixtime
CONSTRAINT [PK_SensorValues] PRIMARY KEY CLUSTERED
(
[DeviceId] ASC,
[SensorId] ASC,
[Date] DESC
);
Run Code Online (Sandbox Code Playgroud)
该表在日期列上每周进行分区。
我现在应该做什么
所以,我做的是以下。我选择每个分区中当前日期/时间之前的最大值。并选出最大的值。
SELECT TOP (1) ca.SensorValue, ca.Date
FROM sys.partitions AS p
CROSS APPLY
(
SELECT TOP (1) v.Date, v.SensorValue
FROM SensorValue AS v
WHERE $PARTITION.SensorValues_Date_PF(v.Date) = p.[partition_number]
AND v.DeviceId = @fDeviceId
AND v.SensorId = @fSensorId …Run Code Online (Sandbox Code Playgroud) 我正在阅读 Christian Bolton、Brent Ozar 的一本关于 SQL 2008 内部结构和故障排除的书,以及已故 Ken Henderson 写的一本旧书,我对 SQL 服务器的动态内存管理器感到困惑和好奇。
有人可以确认我对 SQL Server 动态内存管理的理解是正确的吗?
在 SQL Server 2005/2008/2008R2 x64 中
a) 锁占用的最大内存量限制为缓冲池内存(最大服务器内存)的 60%。通过禁用锁升级并进行大量插入,我可以看到 SQL Server 在抛出错误号 1204(锁内存不足)之前可以占用多达 60% 的缓冲池内存
b) 计划缓存大小限制为
a) Number of plans in cache -- 160K
b) Plan Cache upper limit: 75% of server memory from 0-4GB + 10% of server memory from 4Gb-64GB + 5% of server memory > 64GB.
Run Code Online (Sandbox Code Playgroud)
一旦达到此阈值,SQL Server 将开始从缓存中驱逐执行计划,直到 SQL Server 不再看到内部计划缓存压力
c) 工作区内存限制为最大服务器内存的 75%,除非被资源调控器覆盖,否则单个查询不能超过(可用的最大工作区内存 75%)的 25%。
我的问题是
在惰性编写器开始将页面逐出内存之前,数据库页面缓存占用的最大内存是否有限制?它是如何控制的?通过查看缓冲区中的空闲页数……** …
给定以下针对 AdventureWorks 数据库的 SQL 代码:
begin transaction;
drop trigger Sales.iduSalesOrderDetail;
alter table Sales.SalesOrderDetail
add LineNumber int null;
go
with sod as (
select
SalesOrderID,
/* other cols */
LineNumber,
NewLineNumber = row_number() over
(partition by SalesOrderID order by SalesOrderDetailID) + 1
from Sales.SalesOrderDetail
where SalesOrderID <= 44000)
update sod
set LineNumber = NewLineNumber,
ModifiedDate = getdate()
output
inserted.SalesOrderID,
/* other cols */
inserted.LineNumber;
select
SalesOrderID,
/* other cols */
LineNumber
from Sales.SalesOrderDetail
where SalesOrderID <= 44000;
rollback transaction;
Run Code Online (Sandbox Code Playgroud)
在 SQL …
这个问题的背景可以在这里找到。
我的存储过程的以下部分不起作用。条款是否有字符长度限制LIKE?t1.ProductList有时最长可达 1000 个字符:
DELETE t1 FROM #tmptable t1
WHERE EXISTS (SELECT 1 FROM #tmptable2_ t2
WHERE t1.DealerId != t2.DealerId
AND t2.ProductList LIKE '%' + t1.ProductList + '%'
AND t2.numberOfVibs > t1.numberOfVibs);
Run Code Online (Sandbox Code Playgroud)
列中单行的示例数据ProductList:
B1ZMA25706,B1ZMI09502,B1ZMI12910,B1ZMI18602,BB001TBL26,BBHMOVE4,BE09501FBL,BGS52200,BKS3003,BM2,BO11001EBO,BPGTB1200,BPGTC172HP,BPGTX663,BPIVMS6502,BPIVOD1022,BPVA475,BPVB1000,BPVB800,BPVC652,BPVPW1500,BPVW1000,BPVX652,BPVX662,BREMEN78, BSA2602、BSD2880、BSG62082、BSG71800、BSG81623、BSG82422、BSG82480、BSGL32015、CAB150、CAB21、CD1401B、CD21001WAL、CD210012004CD500、CD21001、CD5000、CD2100400400000000000000000000000C
我在 SQL Server 2012 中有一个具有以下简化架构的表,我需要定义一个查询来获取最新的记录,然后返回它们之间间隔少于 30 天的记录链。一旦出现超过 30 天的差距,链条就会被打破,不再继续。重叠应该延续链条。有没有办法在不诉诸缓慢和递归的情况下解决这个问题?
ID (int)
Arrival (datetime)
Departure (datetime)
Run Code Online (Sandbox Code Playgroud)
ID Arrival Departure
1 2009-04-19 2009-04-28
2 2009-04-27 2009-05-21
3 2009-06-11 2009-07-01
4 2009-07-19 2009-07-24
5 2004-04-19 2004-04-21
6 2009-02-28 2009-03-05
Run Code Online (Sandbox Code Playgroud)
ID Arrival Departure
4 2009-07-19 2009-07-24
3 2009-06-11 2009-07-01
2 2009-04-27 2009-05-21
1 2009-04-19 2009-04-28
Run Code Online (Sandbox Code Playgroud) 我正在做一个项目,它有大约 10 万条记录。我们可以承受 1 天的停机时间,但我们需要数据始终以最新状态提供给我们。
我经历了两种选择:
1) 镜像(将在未来版本中弃用)
2) AlwaysOn 可用性组
两者看起来都不适合我的场景,因为镜像很快就会过时,并且可用性组仅在 SQL Server 的企业版中可用。我们只有BI版。
除了这些,还有什么好的选择吗?我们甚至准备花钱购买 3rd 方工具,但目前买不起企业版。
sql-server-2012 ×10
sql-server ×7
backup ×1
group-by ×1
identity ×1
partitioning ×1
select ×1
t-sql ×1