我正在使用引用链接服务器的视图和存储过程:
SELECT Id, Name
FROM [LinkedServer].Database.dbo.FooView
Run Code Online (Sandbox Code Playgroud)
我想隐藏[LinkedServer].Database或至少隐藏[LinkedServer]我的视图和存储过程的一部分。这样我就可以拥有“与服务器无关”的代码,可以很容易地在生产服务器和开发服务器之间进行比较。
这可以在服务器级别(如链接服务器)或数据库级别(使用它的视图和存储过程)完成。
我WAITFOR在以下脚本中与游标结合使用:
create table orders(orderId int primary key,productId int,productName varchar(20));
insert into orders values(1,11,'book');
insert into orders values(2,13,'flower');
insert into orders values(3,24,'microwave');
insert into orders values(4,7,'food');
insert into orders values(5,46,'clothes');
declare cur cursor for
select * from orders;
open cur;
fetch next from cur;
while(@@fetch_status=0)
begin
waitfor delay '00:00:01';
fetch next from cur;
end;
close cur;
deallocate cur;
Run Code Online (Sandbox Code Playgroud)
我希望每 1 秒的指定间隔显示来自光标的一条记录。例如:显示第一行,然后等待一秒钟;显示第二行,然后稍等;等等。上面的光标不会这样做。说orders有 5 行。该WHILE块等待 5 秒钟,然后一起显示所有记录。
这是游标的错吗?如何修改此脚本以按预期工作?
我想在 SQL Server 上使用 Service Broker 为我们的生产数据库设置一堆事件通知。
我在我的测试机器上设置了一个新数据库,一切正常。问题是我宁愿不必为此通知目的部署整个数据库,而且我不能使用一个已经到位的用户数据库(无论如何,这将是一团糟)。
如果可能,我最好将通知对象部署在 上master,但首先我想确定这实际上是一个好主意(如果确实如此)。
从网上书籍:
不要在 master 中创建用户对象。如果这样做,必须更频繁地备份 master。
Books Online建议我不要在master. 此外,我们已经master经常备份我们的数据库。
master在这种情况下,我应该使用数据库还是其他东西?
master在设置之前,我应该了解数据库、服务代理或事件通知吗?
sql-server-2005 sql-server sql-server-2008-r2 service-broker event-notification
我们需要操作从选择查询返回的一组记录。这可以在:
我们可以这样做
Select * from
(select * from table where conditions) AS results
where results.RowNum between ....
Run Code Online (Sandbox Code Playgroud)
那么在这种情况下最好的方法是什么..使用表变量或第二种方法。与第一种方法相比,使用第二种方法是否存在任何性能问题?
我知道我可以使用性能计数器来跟踪资源调控器 CPU 和内存使用情况。是否可以跟踪每个工作负载组的 I/O 使用情况?我没有看到任何具体的或任何推荐的做法。
如果我将 jdbc 隔离级别设置为在 SQL Server 中读取未提交,SQL Server 会锁定任何表、页、行等吗?
谢谢。
我想在单独的服务器上设置一个测试数据库。生产数据库是 MS SQL Server,测试服务器是 *nix 机器,所以我想让测试服务器运行 PostgreSQL 或 MySQL。
数据集非常大;有些表有 30k+ 行,并且有很多表。
一些表根本没有太大变化,并且出于测试目的,许多表可以是空的,因此理想情况下,某种可以从数据库复制部分但不是全部记录的解决方案将是理想的。
除此之外,我可能只是在同一台服务器上制作生产数据库的测试副本,而不是将测试数据库服务器放在开发服务器上。假设测试数据库上的负载相对较小,在与生产服务器相同的服务器上托管测试数据库是否存在潜在问题?
如果我从生产环境复制 - > 在 MS SQL Server 中进行测试,是否可以设置某种自动化脚本来选择性地仅复制某些记录(例如,仅某些表中的最后 1k 行,而其他表中没有,以及选定的几行中的所有行)?有没有办法将其设置为选择性备份,然后使用该备份生成测试数据库?
这里测试的只是代码,而不是数据库,甚至不是数据库的接口。代码 (Django) 使用 ORM,因此使用哪个 RDBMS 并不重要。我很乐意假设,如果我调用.save()它,无论数据库如何,它都可以工作;我担心的是我是否正确设置了表单、实用程序函数、数据导入等,所有这些都是通过 Django 的关系模型系统抽象出来的,该系统已被证明对 RDBMS 完全无动于衷(实际上,在一个的生产版本中)我的网站同时从 MySQL 和 SQL Server 数据库中提取(一个包含旧数据)。
为了便于论证,让我们假设我在单个 SQL Server 数据库中有以下表。
mySchema.Users
mySchema.Products
--
secondSchema.Users
secondSchema.Contracts
secondSchema.ContractItems
--
oldSchema.People
oldSchema.Table1
oldSchema.Table2
oldSchema.Table3
oldSchema.Table4
--
and so on and so forth
Run Code Online (Sandbox Code Playgroud)
每个“模式”都完全独立于其他“模式”。它们位于单个数据库中的唯一原因是托管和成本限制。在一个完美的世界中,这些本来应该在单独的数据库中。
当(如果有的话)我需要将 secondSchema 移动到一个新数据库时,我需要做什么,这完全是因为它的使用量增加了,现在需要将它存放在自己的数据库中。
我已经查看了关于何时使用非 dbo 模式与新数据库的决策标准,正如我上面所说的,它们在同一个数据库中没有关系或事务的理由。他们在那里是出于成本原因。
我有一个相当大的事务数据库 (100GB),有很多用户。数据库访问完全通过存储过程进行,这些过程大量使用临时表、表变量、游标和其他有趣的东西。
我正在一个新盒子上试用它以提高性能。新盒子有 5 个独立的物理硬盘。我正在努力想出一个最佳设置(主要是虽然无知,但我通常是 ac# dev)。到目前为止,我得到了以下信息:
Drive C: OS, SQL install, TempDB log
Drive D: Database data
Drive E: Database log
Drive F: TempDB data
Drive G: Databases indexes
Run Code Online (Sandbox Code Playgroud)
我走的是正确的道路吗?有什么明显的错误吗?
我正在拉回订单列表,但我只需要显示一定比例的记录。例如,我们想要前 30 名或前 50 名。百分比是可变的,所以我不想使用 TOP。我尝试了下面的代码,但没有返回任何记录。
SELECT x.SelectionCriteriaID,
x.DeliveryCriteriaID,
x.SurveyID,
x.intappid,
x.intcustomerID,
x.intorderid,
x.RowNumber RowNumber,
x.cntoid
FROM (SELECT @SelectionCriteriaID SelectionCriteriaID,
@DeliveryCriteriaID DeliveryCriteriaID,
@SurveyID SurveyID,
ord.intappid,
ord.intcustomerID,
ord.intorderid,
ord.cntoid,
ROW_NUMBER() OVER (ORDER BY ord.intcustomerid) AS RowNumber
FROM ord
WHERE ord.cntoid >= ISNULL(@MinNumberOrders, 1)
AND ord.cntoid < ISNULL(@MaxNumberOrders, 999999999))x
GROUP BY x.SelectionCriteriaID, x.DeliveryCriteriaID, x.SurveyID, x.intappid, x.intcustomerID, x.intorderid, x.RowNumber, x.cntoid
HAVING x.rownumber < MAX(x.RowNumber)/(100/@percent)
Run Code Online (Sandbox Code Playgroud) sql-server ×10
performance ×2
backup ×1
cursors ×1
hardware ×1
locking ×1
mysql ×1
postgresql ×1
query ×1
schema ×1
select ×1
t-sql ×1
testing ×1