473,847 Members | 1,715 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Poor Performance with Lazy Spool Operator

3 New Member
Our application is having an issue where a query in a stored procedure periodically gets a bad plan with a Lazy Spool Operator that changes the query execution time from 5ms to 900ms and kills our CPU. We are running x64 SQL 2005 SP2 on Windows 2003 SP2.

We thought it might be parameter sniffing that was causing the bad plan, so we re-wrote the query to disable parameter sniffing. Unfortunately, that made the problem worse as we always got the Lazy Spool Operator.

I'd appreciate it if anyone could explain how to re-write the query to avoid getting the Lazy Spool Operator.

I tried to post the xmlshowplans for the good and bad plans but it did not work. Please e-mail me at ahp11@psu.edu to get the query plans.

Thanks!
Alex Pollock

Here is the query:

Expand|Select|Wrap|Line Numbers
  1. end
  2. else
  3. begin
  4. -- team access display = 0, so all access settings should come from the default even if settings
  5. -- are by team.
  6. SELECT LSN_ENTRIES.ENTRY_ID, LSN_ENTRIES.PARENT_ID, LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.EDITABLE_BY,
  7. LSN_ENTRIES.VIEWABLE_BY, LSN_ENTRIES.TRACKING, LSN_ACCESS.HIDDEN, LSN_ENTRIES.PASSWORD,
  8. LSN_ACCESS.TEAM_ID AS USER_GROUP, LSN_ENTRIES.START_DATE, LSN_ENTRIES.END_DATE, LSN_ENTRIES.ENTRY_AUTHOR,
  9. LSN_ENTRIES.ENTRY_CREATED, LSN_ENTRIES.SEQUENCE, LSN_OBJECTS.OBJECT_ID, LSN_OBJECTS.OBJECT_TYPE,
  10. LSN_OBJECTS.EDIT_MASK, LSN_OBJECTS.LINK_MASK, LSN_OBJECTS.TITLE, LSN_OBJECTS.SUBTITLE, LSN_OBJECTS.PAGE_FORMAT,
  11. LSN_OBJECTS.LINK_URL, LSN_OBJECTS.LINK_TARGET, LSN_OBJECTS.OBJECT_EDITABLE_BY, LSN_OBJECTS.ICON_URL,
  12. LSN_OBJECTS.HELP_URL, LSN_OBJECTS.OBJECT_AUTHOR, LSN_OBJECTS.OBJECT_CREATED, LSN_OBJECTS.DELETED,
  13. LSN_OBJECTS.DRM_PROTECTED, LSN_OBJECTS.ATTRIBUTES, LSN_OBJECTS.PAGE_TEXT
  14. FROM LSN_ENTRIES
  15. JOIN LSN_OBJECTS ON LSN_OBJECTS.OBJECT_ID = LSN_ENTRIES.OBJECT_ID
  16. JOIN LSN_ACCESS ON LSN_ACCESS.ENTRY_ID = LSN_ENTRIES.ENTRY_ID AND LSN_ACCESS.COURSE_ID = LSN_ENTRIES.COURSE_ID
  17. WHERE LSN_ENTRIES.PARENT_ID = @PARENT_ID AND LSN_ENTRIES.COURSE_ID = @COURSE_ID
  18. AND (LSN_OBJECTS.DELETED <> 1) AND (LSN_ENTRIES.VIEWABLE_BY <= @USER_RIGHTS ) AND (LSN_ACCESS.HIDDEN = 0)
  19. AND ((LSN_ENTRIES.START_DATE IS NULL) OR (LSN_ENTRIES.START_DATE < @CURRENT_DATE))
  20. AND ((LSN_ENTRIES.END_DATE IS NULL) OR (LSN_ENTRIES.END_DATE > @CURRENT_DATE))
  21. --            AND CHARINDEX(';'+LSN_ACCESS.TEAM_ID+';', @TEAM_LIST) > 0
  22. AND (LSN_ACCESS.TEAM_ID IN (SELECT team_id from team_members where user_id in (select user_id from course_roster where course_id = @course_id and user_id = @user_id) and course_id = @course_id) OR LSN_ACCESS.TEAM_ID = 'ALL')
  23. AND LSN_ACCESS.TEAM_ID = (SELECT TOP 1 TEAM_ID FROM LSN_ACCESS
  24. WHERE LSN_ACCESS.ENTRY_ID = LSN_ENTRIES.ENTRY_ID AND LSN_ACCESS.COURSE_ID = LSN_ENTRIES.COURSE_ID
  25. --            AND CHARINDEX(';'+LSN_ACCESS.TEAM_ID+';', @TEAM_LIST) > 0
  26. AND (LSN_ACCESS.TEAM_ID IN (SELECT team_id from team_members where user_id in (select user_id from course_roster where course_id = @course_id and user_id = @user_id) and course_id = @course_id) OR LSN_ACCESS.TEAM_ID = 'ALL')
  27. AND (CASE LSN_ENTRIES.USER_GROUP WHEN 'ALL' THEN LSN_ACCESS.TEAM_ID ELSE 'ALL' END = 'ALL')
  28. ORDER BY TEAM_PRIORITY desc, TEAM_ID)
  29. ORDER BY LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.SEQUENCE, LSN_ENTRIES.ENTRY_CREATED

Here is the original stored proc that contains the query above:
Expand|Select|Wrap|Line Numbers
  1. SET ANSI_NULLS ON
  2. GO
  3. SET QUOTED_IDENTIFIER ON
  4. GO
  5.  
  6. -- @TEAMACCESS_DISPLAY is the value for environment variable TEAMACCESS_DISPLAY
  7. -- @PARENT_ID is the parent entry id for the folder being displayed
  8. -- @ISEDITABLE is 1/0 based on whether the user entering the folder has editor rights -- Content Editor isEditable()
  9. -- @TEAM_LIST is a list of teams which the user is a member.  The list should be ; separated.  Example ';ALL;Team 1;Team 2;Team 10;'
  10. -- @USER_RIGHTS is the right of the user entering the folder
  11. -- @COURSE_ID is the id for the course in which the folder resides
  12. -- @CURRENT_DATE is the current date time used to validate against the start and end date
  13.  
  14. /*
  15. CJ:
  16. removed line: AND CHARINDEX(';'+LSN_ACCESS.TEAM_ID+';', @TEAM_LIST) > 0
  17. added line: AND (LSN_ACCESS.TEAM_ID IN (SELECT team_id from team_members where user_id in (select user_id from course_roster where course_id = @course_id and user_id = @user_id) and course_id = @course_id) OR LSN_ACCESS.TEAM_ID = 'ALL')
  18. removed Team_list parameter
  19. added User_id parameter
  20. */
  21. CREATE PROCEDURE [dbo].[GetUserAccessFolderList]
  22. @TEAMACCESS_DISPLAY smallint,
  23. @PARENT_ID nvarchar(100),
  24. @ISEDITABLE bit,
  25. --    @TEAM_LIST nvarchar(250),
  26. @USER_RIGHTS smallint,
  27. @COURSE_ID nvarchar(250),
  28. @CURRENT_DATE datetime,
  29. @USER_ID nvarchar(50)
  30. AS
  31. if @ISEDITABLE = 1
  32. begin
  33. SELECT LSN_ENTRIES.ENTRY_ID, LSN_ENTRIES.PARENT_ID, LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.EDITABLE_BY, LSN_ENTRIES.VIEWABLE_BY,
  34. LSN_ENTRIES.TRACKING, LSN_ENTRIES.HIDDEN, LSN_ENTRIES.PASSWORD, LSN_ENTRIES.USER_GROUP, LSN_ENTRIES.START_DATE, LSN_ENTRIES.END_DATE,
  35. LSN_ENTRIES.ENTRY_AUTHOR, LSN_ENTRIES.ENTRY_CREATED, LSN_ENTRIES.SEQUENCE, LSN_OBJECTS.OBJECT_ID, LSN_OBJECTS.OBJECT_TYPE,
  36. LSN_OBJECTS.EDIT_MASK, LSN_OBJECTS.LINK_MASK, LSN_OBJECTS.TITLE, LSN_OBJECTS.SUBTITLE, LSN_OBJECTS.PAGE_FORMAT, LSN_OBJECTS.LINK_URL,
  37. LSN_OBJECTS.LINK_TARGET, LSN_OBJECTS.OBJECT_EDITABLE_BY, LSN_OBJECTS.ICON_URL, LSN_OBJECTS.HELP_URL, LSN_OBJECTS.OBJECT_AUTHOR,
  38. LSN_OBJECTS.OBJECT_CREATED, LSN_OBJECTS.DELETED, LSN_OBJECTS.DRM_PROTECTED, LSN_OBJECTS.ATTRIBUTES, LSN_OBJECTS.PAGE_TEXT
  39. FROM LSN_ENTRIES JOIN LSN_OBJECTS ON (LSN_OBJECTS.OBJECT_ID = LSN_ENTRIES.OBJECT_ID)
  40. WHERE LSN_ENTRIES.PARENT_ID = @PARENT_ID AND LSN_ENTRIES.COURSE_ID = @COURSE_ID AND (LSN_OBJECTS.DELETED <> 1)
  41. ORDER BY LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.SEQUENCE, LSN_ENTRIES.ENTRY_CREATED
  42. end
  43. else
  44. begin
  45. if @TEAMACCESS_DISPLAY = 2
  46. begin
  47. SELECT LSN_ENTRIES.ENTRY_ID, LSN_ENTRIES.PARENT_ID, LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.EDITABLE_BY,
  48. LSN_ACCESS.VIEWABLE_BY, LSN_ACCESS.TRACKING, LSN_ACCESS.HIDDEN, LSN_ACCESS.PASSWORD,
  49. LSN_ACCESS.TEAM_ID AS USER_GROUP, LSN_ACCESS.START_DATE, LSN_ACCESS.END_DATE, LSN_ENTRIES.ENTRY_AUTHOR,
  50. LSN_ENTRIES.ENTRY_CREATED, LSN_ENTRIES.SEQUENCE, LSN_OBJECTS.OBJECT_ID, LSN_OBJECTS.OBJECT_TYPE,
  51. LSN_OBJECTS.EDIT_MASK, LSN_OBJECTS.LINK_MASK, LSN_OBJECTS.TITLE, LSN_OBJECTS.SUBTITLE, LSN_OBJECTS.PAGE_FORMAT,
  52. LSN_OBJECTS.LINK_URL, LSN_OBJECTS.LINK_TARGET, LSN_OBJECTS.OBJECT_EDITABLE_BY, LSN_OBJECTS.ICON_URL,
  53. LSN_OBJECTS.HELP_URL, LSN_OBJECTS.OBJECT_AUTHOR, LSN_OBJECTS.OBJECT_CREATED, LSN_OBJECTS.DELETED,
  54. LSN_OBJECTS.DRM_PROTECTED, LSN_OBJECTS.ATTRIBUTES, LSN_OBJECTS.PAGE_TEXT
  55. FROM LSN_ENTRIES
  56. JOIN LSN_OBJECTS ON LSN_OBJECTS.OBJECT_ID = LSN_ENTRIES.OBJECT_ID
  57. JOIN LSN_ACCESS ON LSN_ACCESS.ENTRY_ID = LSN_ENTRIES.ENTRY_ID AND LSN_ACCESS.COURSE_ID = LSN_ENTRIES.COURSE_ID
  58. WHERE LSN_ENTRIES.PARENT_ID = @PARENT_ID AND LSN_ENTRIES.COURSE_ID = @COURSE_ID
  59. AND (LSN_OBJECTS.DELETED <> 1)
  60. --        AND CHARINDEX(';'+LSN_ACCESS.TEAM_ID+';', @TEAM_LIST) > 0
  61. AND (LSN_ACCESS.TEAM_ID IN (SELECT team_id from team_members where user_id in (select user_id from course_roster where course_id = @course_id and user_id = @user_id) and course_id = @course_id) OR LSN_ACCESS.TEAM_ID = 'ALL')
  62. AND LSN_ACCESS.TEAM_ID = (SELECT TOP 1 TEAM_ID FROM LSN_ACCESS
  63. WHERE LSN_ACCESS.ENTRY_ID = LSN_ENTRIES.ENTRY_ID AND LSN_ACCESS.COURSE_ID = LSN_ENTRIES.COURSE_ID
  64. --AND CHARINDEX(';'+LSN_ACCESS.TEAM_ID+';', @TEAM_LIST) > 0
  65. AND (LSN_ACCESS.TEAM_ID IN (SELECT team_id from team_members where user_id in (select user_id from course_roster where course_id = @course_id and user_id = @user_id) and course_id = @course_id) OR LSN_ACCESS.TEAM_ID = 'ALL')
  66. AND (LSN_ACCESS.VIEWABLE_BY <= @USER_RIGHTS ) AND (LSN_ACCESS.HIDDEN = 0)
  67. AND ((LSN_ACCESS.START_DATE IS NULL) OR (LSN_ACCESS.START_DATE < @CURRENT_DATE))
  68. AND ((LSN_ACCESS.END_DATE IS NULL) OR (LSN_ACCESS.END_DATE > @CURRENT_DATE))
  69. ORDER BY TEAM_PRIORITY desc, TEAM_ID)
  70. ORDER BY LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.SEQUENCE, LSN_ENTRIES.ENTRY_CREATED
  71. end
  72. else
  73. begin
  74. if @TEAMACCESS_DISPLAY = 1
  75. begin
  76. SELECT LSN_ENTRIES.ENTRY_ID, LSN_ENTRIES.PARENT_ID, LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.EDITABLE_BY,
  77. LSN_ACCESS.VIEWABLE_BY, LSN_ACCESS.TRACKING, LSN_ACCESS.HIDDEN, LSN_ACCESS.PASSWORD,
  78. LSN_ACCESS.TEAM_ID AS USER_GROUP, LSN_ACCESS.START_DATE, LSN_ACCESS.END_DATE, LSN_ENTRIES.ENTRY_AUTHOR,
  79. LSN_ENTRIES.ENTRY_CREATED, LSN_ENTRIES.SEQUENCE, LSN_OBJECTS.OBJECT_ID, LSN_OBJECTS.OBJECT_TYPE,
  80. LSN_OBJECTS.EDIT_MASK, LSN_OBJECTS.LINK_MASK, LSN_OBJECTS.TITLE, LSN_OBJECTS.SUBTITLE, LSN_OBJECTS.PAGE_FORMAT,
  81. LSN_OBJECTS.LINK_URL, LSN_OBJECTS.LINK_TARGET, LSN_OBJECTS.OBJECT_EDITABLE_BY, LSN_OBJECTS.ICON_URL,
  82. LSN_OBJECTS.HELP_URL, LSN_OBJECTS.OBJECT_AUTHOR, LSN_OBJECTS.OBJECT_CREATED, LSN_OBJECTS.DELETED,
  83. LSN_OBJECTS.DRM_PROTECTED, LSN_OBJECTS.ATTRIBUTES, LSN_OBJECTS.PAGE_TEXT
  84. FROM LSN_ENTRIES
  85. JOIN LSN_OBJECTS ON LSN_OBJECTS.OBJECT_ID = LSN_ENTRIES.OBJECT_ID
  86. JOIN LSN_ACCESS ON LSN_ACCESS.ENTRY_ID = LSN_ENTRIES.ENTRY_ID AND LSN_ACCESS.COURSE_ID = LSN_ENTRIES.COURSE_ID
  87. WHERE LSN_ENTRIES.PARENT_ID = @PARENT_ID AND LSN_ENTRIES.COURSE_ID = @COURSE_ID
  88. AND (LSN_OBJECTS.DELETED <> 1)
  89. --AND CHARINDEX(';'+LSN_ACCESS.TEAM_ID+';', @TEAM_LIST) > 0
  90. AND (LSN_ACCESS.TEAM_ID IN (SELECT team_id from team_members where user_id in (select user_id from course_roster where course_id = @course_id and user_id = @user_id) and course_id = @course_id) OR LSN_ACCESS.TEAM_ID = 'ALL')
  91.  
  92. AND LSN_ACCESS.TEAM_ID = (SELECT TOP 1 TEAM_ID FROM LSN_ACCESS
  93. WHERE LSN_ACCESS.ENTRY_ID = LSN_ENTRIES.ENTRY_ID AND LSN_ACCESS.COURSE_ID = LSN_ENTRIES.COURSE_ID
  94. --            AND CHARINDEX(';'+LSN_ACCESS.TEAM_ID+';', @TEAM_LIST) > 0
  95. AND (LSN_ACCESS.TEAM_ID IN (SELECT team_id from team_members where user_id in (select user_id from course_roster where course_id = @course_id and user_id = @user_id) and course_id = @course_id) OR LSN_ACCESS.TEAM_ID = 'ALL')
  96.  
  97. AND (LSN_ACCESS.VIEWABLE_BY <= @USER_RIGHTS ) AND (LSN_ACCESS.HIDDEN = 0)
  98. AND ((LSN_ACCESS.START_DATE IS NULL) OR (LSN_ACCESS.START_DATE < @CURRENT_DATE))
  99. AND ((LSN_ACCESS.END_DATE IS NULL) OR (LSN_ACCESS.END_DATE > @CURRENT_DATE)) AND
  100. (CASE LSN_ENTRIES.USER_GROUP WHEN 'ALL' THEN LSN_ACCESS.TEAM_ID ELSE 'ALL' END = 'ALL')
  101. ORDER BY TEAM_PRIORITY desc, TEAM_ID)
  102. ORDER BY LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.SEQUENCE, LSN_ENTRIES.ENTRY_CREATED
  103. end
  104. else
  105. begin
  106. -- team access display = 0, so all access settings should come from the default even if settings
  107. -- are by team.
  108. SELECT LSN_ENTRIES.ENTRY_ID, LSN_ENTRIES.PARENT_ID, LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.EDITABLE_BY,
  109. LSN_ENTRIES.VIEWABLE_BY, LSN_ENTRIES.TRACKING, LSN_ACCESS.HIDDEN, LSN_ENTRIES.PASSWORD,
  110. LSN_ACCESS.TEAM_ID AS USER_GROUP, LSN_ENTRIES.START_DATE, LSN_ENTRIES.END_DATE, LSN_ENTRIES.ENTRY_AUTHOR,
  111. LSN_ENTRIES.ENTRY_CREATED, LSN_ENTRIES.SEQUENCE, LSN_OBJECTS.OBJECT_ID, LSN_OBJECTS.OBJECT_TYPE,
  112. LSN_OBJECTS.EDIT_MASK, LSN_OBJECTS.LINK_MASK, LSN_OBJECTS.TITLE, LSN_OBJECTS.SUBTITLE, LSN_OBJECTS.PAGE_FORMAT,
  113. LSN_OBJECTS.LINK_URL, LSN_OBJECTS.LINK_TARGET, LSN_OBJECTS.OBJECT_EDITABLE_BY, LSN_OBJECTS.ICON_URL,
  114. LSN_OBJECTS.HELP_URL, LSN_OBJECTS.OBJECT_AUTHOR, LSN_OBJECTS.OBJECT_CREATED, LSN_OBJECTS.DELETED,
  115. LSN_OBJECTS.DRM_PROTECTED, LSN_OBJECTS.ATTRIBUTES, LSN_OBJECTS.PAGE_TEXT
  116. FROM LSN_ENTRIES
  117. JOIN LSN_OBJECTS ON LSN_OBJECTS.OBJECT_ID = LSN_ENTRIES.OBJECT_ID
  118. JOIN LSN_ACCESS ON LSN_ACCESS.ENTRY_ID = LSN_ENTRIES.ENTRY_ID AND LSN_ACCESS.COURSE_ID = LSN_ENTRIES.COURSE_ID
  119. WHERE LSN_ENTRIES.PARENT_ID = @PARENT_ID AND LSN_ENTRIES.COURSE_ID = @COURSE_ID
  120. AND (LSN_OBJECTS.DELETED <> 1) AND (LSN_ENTRIES.VIEWABLE_BY <= @USER_RIGHTS ) AND (LSN_ACCESS.HIDDEN = 0)
  121. AND ((LSN_ENTRIES.START_DATE IS NULL) OR (LSN_ENTRIES.START_DATE < @CURRENT_DATE))
  122. AND ((LSN_ENTRIES.END_DATE IS NULL) OR (LSN_ENTRIES.END_DATE > @CURRENT_DATE))
  123. --            AND CHARINDEX(';'+LSN_ACCESS.TEAM_ID+';', @TEAM_LIST) > 0
  124. AND (LSN_ACCESS.TEAM_ID IN (SELECT team_id from team_members where user_id in (select user_id from course_roster where course_id = @course_id and user_id = @user_id) and course_id = @course_id) OR LSN_ACCESS.TEAM_ID = 'ALL')
  125. AND LSN_ACCESS.TEAM_ID = (SELECT TOP 1 TEAM_ID FROM LSN_ACCESS
  126. WHERE LSN_ACCESS.ENTRY_ID = LSN_ENTRIES.ENTRY_ID AND LSN_ACCESS.COURSE_ID = LSN_ENTRIES.COURSE_ID
  127. --            AND CHARINDEX(';'+LSN_ACCESS.TEAM_ID+';', @TEAM_LIST) > 0
  128. AND (LSN_ACCESS.TEAM_ID IN (SELECT team_id from team_members where user_id in (select user_id from course_roster where course_id = @course_id and user_id = @user_id) and course_id = @course_id) OR LSN_ACCESS.TEAM_ID = 'ALL')
  129. AND (CASE LSN_ENTRIES.USER_GROUP WHEN 'ALL' THEN LSN_ACCESS.TEAM_ID ELSE 'ALL' END = 'ALL')
  130. ORDER BY TEAM_PRIORITY desc, TEAM_ID)
  131. ORDER BY LSN_ENTRIES.COURSE_ID, LSN_ENTRIES.SEQUENCE, LSN_ENTRIES.ENTRY_CREATED
  132. end
  133. end
  134. end
  135. GO
  136.  
  137. SET ANSI_NULLS OFF
  138. GO
  139. SET QUOTED_IDENTIFIER OFF
  140. GO
Jan 31 '08 #1
2 4685
apollock
3 New Member
I ended up solving this issue with a plan guide and the OPTIMIZE FOR hint.

It turned out that it was parameter sniffing, but the SQL2000 method to disable parameter sniffing (the one using local variables) no longer works on SQL2005.


Alex Pollock
Mar 12 '08 #2
apollock
3 New Member
Another example of a good plan.
Feb 2 '09 #3

Sign in to post your reply or Sign up for a free account.

Similar topics

25
2401
by: Steven Bethard | last post by:
So I end up writing code like this a fair bit: map = {} for key, value in sequence: map.setdefault(key, ).append(value) This code basically constructs a one-to-many mapping -- each value that a key occurs with is stored in the list for that key. This code's fine, and seems pretty simple, but thanks to generator
0
3872
by: Thomas R. Hummel | last post by:
Hello, I have a table which has a few million records. It has an IDENTITY column that serves as the primary key. In a part of our application here, a previous record may need to be copied as a new row. Within a stored procedure exists SQL like: INSERT INTO .. (col1, col2, col3, ...) SELECT @var1, col2, col3, ... FROM My_Table
1
21011
by: david_0 | last post by:
What causes the query optimizer to choose a table spool\lazy spool action in the execution plan? The explanation of "optimize rewinds" makes little sense because my query never comes back to that table. I'm going to have to change the query but it would be helpful if I knew what I should be trying to avoid. David
12
2830
by: Siemel Naran | last post by:
What is a good idiom for handling a lazy object? I see 2 good possibilities. Any more, any comments? Which way do people here use? (1) class Thing { public: Thing(double x, double y) : x(x), y(y), calculated(false) { } double operator()() const {
4
3274
by: Steph | last post by:
Hi - Trying to chase down a baffling performance issue. Our database has been running very slow lately. So we are performance tuning the database. In doing so, we created a copy of our production database. In that database, I changed one clustered index on a table to try to improve performance. I ran one query - saw a slight improvement - but saw "lazy spool" in the execution plan. I tried to change it back to the original index by...
11
2369
by: John Fly | last post by:
I'm working on a large project(from scratch). The program is essentially a data file processor, the overall view is this: A data file is read in, validated and stored in a memory structure similar to a database or XML representation. Rules to modify the stored data will be executed, then the data will be transformed into an output format. Think something similar to FormatA -> XML -> Manipulate XML -> FormatB
9
3523
by: sturlamolden | last post by:
Python allows the binding behaviour to be defined for descriptors, using the __set__ and __get__ methods. I think it would be a major advantage if this could be generalized to any object, by allowing the assignment operator (=) to be overloaded. One particular use for this would be to implement "lazy evaluation". For example it would allow us to get rid of all the temporary arrays produced by NumPy. For example, consider the...
6
3938
by: Peng Yu | last post by:
Hi, I'm wondering if the following assignment is lazy copy or not? Thanks, Peng std::vector<intv. v.push_back(1); v.push_back(2);
0
9887
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9730
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
10983
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
9485
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
0
7056
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5719
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
5911
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
4119
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3164
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.