表模式(SQL Server 2012)
Create Table InterestBuffer
(
AccountNo CHAR(17) PRIMARY KEY,
CalculatedInterest MONEY,
ProvisionedInterest MONEY,
AccomodatedInterest MONEY,
)
Create Table #tempInterestCalc
(
AccountNo CHAR(17) PRIMARY KEY,
CalculatedInterest MONEY
)
Run Code Online (Sandbox Code Playgroud)
我正在做一个upsert.更新存在的行并插入其他行.
UPDATE A
SET A.CalculatedInterest = A.CalculatedInterest + B.CalculatedInterest
FROM InterestBuffer A
INNER JOIN #tempInterestCalc B ON A.AccountNo = B.AccountNo
INSERT INTO InterestBuffer
SELECT A.AccountNo, A.CalculatedInterest, 0, 0
FROM #tempInterestCalc A
LEFT JOIN InterestBuffer B ON A.AccountNo = B.AccountNo
WHERE B.AccountNo IS NULL
Run Code Online (Sandbox Code Playgroud)
一切都很好.并发执行期间出现问题.我#tempInterestCalc通过加入其他各种表来插入数据,包括与表的左连接,InterestBuffer并#tempInterestCalc为每个并发执行插入不同的数据集.
我的问题是,有时执行会被另一个执行锁定,直到我将它们串行提交. …
我在SQL服务器中有一个临时表,如下所示
????????????????????????????????????
?Serial ? Account ? Due ? Balance ?
?1 ? A1 ? 1000 ? 3100 ?
?2 ? A1 ? 1000 ? 3100 ?
?3 ? A1 ? 1000 ? 3100 ?
?4 ? A1 ? 1000 ? 3100 ?
?1 ? A2 ? 100 ? 3100 ?
?2 ? A2 ? 100 ? 3100 ?
?1 ? B1 ? 1000 ? 1100 ?
?2 ? B1 ? 1000 ? 1100 ?
?1 ? B2 ? 100 ? …Run Code Online (Sandbox Code Playgroud) 数据集:
+-----------------+--------+---------+
| TransNo | Serial | Project |
+-----------------+--------+---------+
| A00000000000001 | 1 | 100 |
| A00000000000001 | 2 | 200 |
| A00000000000001 | 3 | 201 |
| A00000000000001 | 4 | 101 |
| A00000000000002 | 1 | 100 |
| A00000000000002 | 2 | 101 |
| A00000000000003 | 1 | 100 |
| A00000000000003 | 2 | 200 |
| A00000000000004 | 1 | 200 |
| A00000000000004 | 2 | 100 | …Run Code Online (Sandbox Code Playgroud) 加速期1和加速期0之间有什么区别?我有线程计数10,同时给出斜坡上升0我的一些情况下使空指针异常.随着加速1它的工作正常.随着上升1意味着在1秒内10个用户将一起开始.加速0会发生什么?
以下查询将在10行中返回1-10.
DECLARE @Range AS INT = 10
;WITH CTE AS(
SELECT TOP (@Range) Duration = ROW_NUMBER() OVER(ORDER BY OBJECT_ID)
FROM sys.all_columns
ORDER BY [Object_id]
)
SELECT Duration from CTE
Run Code Online (Sandbox Code Playgroud)
但是当我将@Range设置为10000时,它返回7374行.为什么此查询不能返回超过7374行.
UPDATE
我刚刚找到另一种方法来实现我的要求如下
DECLARE @start INT = 1;
DECLARE @end INT = 10;
WITH numbers AS (
SELECT @start AS number
UNION ALL
SELECT number + 1
FROM numbers
WHERE number < @end
)
SELECT *
FROM numbers
OPTION (MAXRECURSION 0);
Run Code Online (Sandbox Code Playgroud)
如果没有最后一行代码则会出现错误.在语句完成之前,最大递归100已经用完了,我发现此行为无限递归指定了0.但这个查询对我来说似乎有点慢.有没有更快的方法???
我要发布以下Json数据。
{
"id": 1,
"name": "Zypher",
"price": 12.50,
"tags": [{
"tag": 1,
"tagName": "X"
},
{
"tag": 2,
"tagName": "Y"
},
{
"tag": 2,
"tagName": "Z"
}]
}
Run Code Online (Sandbox Code Playgroud)
我的Jmeter测试计划如下
- Test Plan
- Thread Group
- Http Request Defaults
- Http Cookie Manager
- Simple Controller
- CSV Data Set Config (Sheet_1)
- Http Header Manager
- Http Request (The hard coded json was provided here as body data)
Run Code Online (Sandbox Code Playgroud)
一切正常。现在,我想使用csv参数化我的Json。
Sheet_1:
id,name,price
1,Zypher,12.50
Run Code Online (Sandbox Code Playgroud)
我用这3个参数修改了json及其对我有用。现在,我想对细节部分进行参数化。我不知道该怎么做。我想要保持我的json这样的一切,
{
"id": ${id},
"name": ${name},
"price": …Run Code Online (Sandbox Code Playgroud) 配置文件
<bean id="emfactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="persistenceUnitName" ref="default"/>
<property name="jpaVendorAdaptor">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdaptor"/>
</property>
<property name="jpaProperties">
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">com.xxx.xxx.xxx.xxx.SQLServer2012CustomDialect</prop>
</property>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
<bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="emfactory"/>
</bean>
Run Code Online (Sandbox Code Playgroud)
服务.java
@Transactional
public void save(Dto dto) throws Exception{
dao.save(entity);
throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)
我的问题是这个异常不会回滚事务。我搜索了很多,发现默认情况下,运行时/未检查异常的弹簧回滚事务。我试过如下;
@Transactional
public void save(Dto dto) throws Exception{
dao.save(entity);
throw new RunTimeException();
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但并不总是在那些到处抛出运行时异常的代码中。所以,我确实挖掘并发现 rollbackFor 如下;
@Transactional(rollbackFor = Exception.class)
public void save(Dto dto) throws Exception{
dao.save(entity);
throw new Exception();
}
Run Code Online (Sandbox Code Playgroud)
现在我必须更改我的所有代码以使用 rollbackFor 更改 @Transactional。但是还有其他方法可以将所有 @Transaction …
sql ×4
sql-server ×4
jmeter ×2
load-testing ×2
csv ×1
exception ×1
hibernate ×1
json ×1
rollback ×1
rowlocking ×1
spring-mvc ×1
t-sql ×1