Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 732695
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T07:10:18+00:00 2026-05-14T07:10:18+00:00

In our current project we are interfacing with a third party data provider. They

  • 0

In our current project we are interfacing with a third party data provider.
They need to insert data in a table of ours. This inserting can be frequent every 1 min, every 5min, every 30, depends on the amount of new data they need to provide. The use the isolation level read committed. On our end we have an application, windows service, that calls a webservice every 2 minutes to see if there is new data in this table. Our isolation level is repeatable read. We retrieve the records and update a column on these rows.

Now the problem is that sometimes this third party provider needs to insert a lot of data, let’s say 5000 records. They do this per transaction (5rows per transaction), but they don’t close the connection. They do one transaction and then the next untill all records are inserted. This caused issues for our process, we receive a timeout.

If this goes on for a long time the database get’s completely unstable. For instance, they maybe stopped, but the table somehow still stays unavailable. When I try to do a select on the table, I get several records but at a certain moment I don’t get any response anymore. It just says retrieving data but nothing comes anymore until I get a timeout exception.

Only solution is to restart the database and then I see the other records.

How can we solve this. What is the ideal isolation level setting in this scenario?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-14T07:10:18+00:00Added an answer on May 14, 2026 at 7:10 am

    perhaps you can create a staging table that the third party data provider can write into. You can then write your own routine to pull data from there into your actual table, using a method of your choosing that better works for your application.

    EDIT based on OP’s comment

    in your question you say

    Now the problem is that sometimes this
    third party provider needs to insert a
    lot of data, let’s say 5000 records.
    They do this per transaction (5rows
    per transaction), but they don’t close
    the connection. They do one
    transaction and then the next untill
    all records are inserted. This caused
    issues for our process, we receive a
    timeout.

    Which indicates that you have identified the problem as how the third party data provider inserts the data, and implies that you are helpless to change it. My suggestion to have them insert into a staging table frees your application for any locking and/or blocking caused by the third party data provider. You would then be free to include the data into your application using any isolation level, any number of rows at a time, any time or a specific time, etc.

    However, I’m puzzled how inserting new rows into a table causes your application to lock up. If it is locking/blocking why would your application be reading those new rows while they are being inserted anyway? Are you inserting using a clustered index with rows going into the middle of the table? Is your application doing table scan selects in a transaction? there must be something else going on.

    when you system starts to die try this, it will show you what is causing the block:

    ;with Blockers AS
    (SELECT
         r.session_id AS spid
             ,r.cpu_time,r.reads,r.writes,r.logical_reads 
             ,r.blocking_session_id AS BlockingSPID
             ,LEFT(OBJECT_NAME(st.objectid, st.dbid),50) AS ShortObjectName
             ,LEFT(DB_NAME(r.database_id),50) AS DatabaseName
             ,s.program_name
             ,s.login_name
             ,OBJECT_NAME(st.objectid, st.dbid) AS ObjectName
             ,SUBSTRING(st.text, (r.statement_start_offset/2)+1,( (CASE r.statement_end_offset
                                                                       WHEN -1 THEN DATALENGTH(st.text)
                                                                       ELSE r.statement_end_offset
                                                                   END - r.statement_start_offset
                                                                  )/2
                                                                ) + 1
                       ) AS SQLText
         FROM sys.dm_exec_requests                          r
             JOIN sys.dm_exec_sessions                      s ON r.session_id = s.session_id
             CROSS APPLY sys.dm_exec_sql_text (sql_handle) st
         --WHERE r.session_id > 50
    )
    SELECT Blockers.* FROM Blockers
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 367k
  • Answers 367k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer I've manage to pass exception into ModelState by overriding MvcContrib.FluentController.AbsteactFluentController.ExecuteCheckValidCall(Func… May 14, 2026 at 4:55 pm
  • Editorial Team
    Editorial Team added an answer It's definitely not Django issue. As far as I understood… May 14, 2026 at 4:55 pm
  • Editorial Team
    Editorial Team added an answer The attribute is called value. Try: $('input:radio[value=r1]').attr('checked', 'checked'); To uncheck… May 14, 2026 at 4:55 pm

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.