我有一个任务,它使用数据流任务将记录从 Oracle db 提取到我们的 SQL。该套餐每天运行约 45 分钟。此包将刷新约 15 个表。除了一个,其他都是增量更新。所以几乎每个任务都运行 2 到 10 分钟。
完全更换的一包运行长达 25 分钟。我想调整此数据流任务以使其运行得更快。
表中只有 400k 行。我确实阅读了一些关于 DefaultBufferSize 和 DefaultBufferMaxRows 的文章。我有以下疑问。
如果我可以将 DefaultBufferSize 设置为 100 MB,是否有任何地方可以查看或分析我可以提供多少。
DefaultBufferMaxRows 设置为 10k。即使我给了 50k 并且我为 DefaultBufferSize 提供了 10 MB,如果它只能容纳大约 20k,那么 SSIS 会做什么。只是忽略那些 30k 记录还是它仍然会拉出所有那些 50k rocords(假脱机)?
我可以使用日志记录选项来设置适当的限制吗?
我有一个表' MyTable ',它有一些商业逻辑.此表有一个名为Expression的列,其中包含使用其他列构建的字符串.我的疑问是
Select Value from MyTable where @Parameters_Built like Expression
Run Code Online (Sandbox Code Playgroud)
变量@Parameters_Built是通过连接所有输入参数构建的.
在我目前的情况下,
@Parameteres_Built='1|2|Computer IT/Game Design & Dev (BS)|0|1011A|1|0|'
Below are the expressions
---------------------
%%|%%|%%|0|%%|%%|0|
---------------------
1|2|%%|0|%%|%%|0|
---------------------
1|%%|%%|0|%%|%%|0|
---------------------
Run Code Online (Sandbox Code Playgroud)
所以我的上面的查询对于所有三行都返回true.但它应该只返回第二行(最大匹配).
我只是不需要针对此方案的修复解决方案.这只是一个例子.我需要一个像选择最佳匹配的解决方案.任何的想法?
此存储过程将检查用户名和密码,1如果凭据匹配则返回0.
CREATE PROCEDURE usp_CheckPermisssions
@UserName NVARCHAR(50),
@Password NVARCHAR(50)
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS( SELECT 1 FROM dbo.Users WHERE Username=@username and Password=@password)
RETURN 1
ELSE
RETURN 0
END
GO
Run Code Online (Sandbox Code Playgroud)
这只是一个示例存储过程.我只是想学习SQL注入技术,以防止我的代码被注入.
假设输入未在前端消毒.
我知道如果我在存储过程中使用动态查询或在前端定义查询,那么SQL注入技术将起作用.
不是:输入将通过前端传递.
换句话说我的问题
任何人都可以对此查询进行注射吗?如果有,怎么样?