Jump to content

Lars Fosdal

Administrators
  • Content Count

    3416
  • Joined

  • Last visited

  • Days Won

    113

Everything posted by Lars Fosdal

  1. Lars Fosdal

    Sql Server Filtered Index

    @Dany Marmur Partitioning is what it sounds like. Like a disk can be partitioned in multiple file systems, a database table can be partitioned into multiple files. You can do this horizontally - divide up by rows - or vertically - divide up by columns. We use a horisontal partition scheme to split the transaction and movement data of each lot created, processed, stored, moved, and delivered in our 40+ warehouses by warehouse. That is many thousands of rows per day per site, and regulation says the data must be stored for certain period of time past the article expiration date. It is used for tracking purposes if a bad batch should reach the market. We would know who got it, where it has been, where it was made, and from which tanks the raw material came. Another similar database tracks who delivered to those tanks, but that is a much smaller amount of data. To oversimplify - you can use a partition key to decide how to divide the records in a table between multiple "physical" files and hence multiple indexes. If a query includes the partition key, the result set would come from one (or more) of the table partitions - giving the secondary keys a much smaller index to deal with. Partitioning gives you query performance if the partition is well designed. If the result set spans multiple partitions - each of the partition queries can be run in parallel since there is no overlap in the data, and the result set will be a union of those queries. The expression index doesn't really lack anything - partitioning is purely for dealing with massively large tables. For examples of the principles of partitioning - take a look at https://www.sqlshack.com/database-table-partitioning-sql-server/
  2. Lars Fosdal

    Sql Server Filtered Index

    Well, we have a database table that is partitioned on a key - simply because the amount of data is so staggeringly huge. Multi segment indexes makes sense if the table is really large, or the index is very complex.
  3. Lars Fosdal

    Delphi 10.4.2 first impressions

    Is there a QP for this? I'd be happy to vote it up.
  4. Lars Fosdal

    Delphi 10.4.2 first impressions

    @FredS My customers also must deal with the bugs that me and the team creates, and we are dependent on them to provide a reproducible bug for us to fix the problem. Complex software will be complex.
  5. Lars Fosdal

    Delphi 10.4.2 first impressions

    Ah, ok - I never really used it that way. That behaviour is consistent with what I see. So, [dot] used to double as [enter] before?
  6. Lars Fosdal

    Install flag to say it's for ALL USERS?

    Working around AD policies is mission impossible. Depending on the rules, the AD policies may decide to nix your changes to the registry and/or file system. But - installing components to a public folder / public registry key by default would be a nice start. @David Schwartz - I know the pain you are in. I used to depend on LAPS to get stuff done, and that doesn't really help for installation of components. Luckily we managed to broker a deal where us devs got local admin rights, in exchange for treating the internet with extreme paranoia.
  7. Lars Fosdal

    Delphi 10.4.2 first impressions

    Since I don't know the intimate details of exactly how the LSP does the analysis, I can't really be that harsh in judgement.
  8. Lars Fosdal

    Delphi 10.4.2 first impressions

    True, but there is almost as many code variations as there are developers. There still may be stuff out there that doesn't work.
  9. Lars Fosdal

    Delphi 10.4.2 first impressions

    It seems likely that there are certain code patterns preventing this. I did some random spot checks in our code, and typing partial variable name[ctrl+space] or variable[dot] produces a selection very quickly.
  10. I always capture the current brush/pen handles, set my own, use them, then restore them to what they were. Oldschool, I guess.
  11. I have a Programs Group containing the projects that I work with on a daily basis. In versions prior to 10.x - sometimes before committing a possibly breaking code change, I would do a build all on that group. There was an older version that also would run out of memory, but eventually that got fixed, but now it seems that error is back. I hadn't really used this for some time, since the build server does it faster than I can, but I was going to benchmark 10.4.2 vs 10.4.1. (Note that the time axis on the charts below are not comparable). 10.4.1 churns through the first 8 projects before it stops on an out of memory error, consuming 3.25Gb. 10.4.2 crashes out hard (IDE goes *poof*) at peak 3.42Gb I wonder what logic it is that governs when the IDE should release generated code or not? Each arrow represents when it starts compiling a project in the project group. Large VCL app, Moderate VCL app, Small VCL app, Small VCL app, Moderate VCL app, Small VCL wrapper around service code, Service without GUI, Small VCL wrapper around service code (OOM). If it had released every time, we would not have this problem. On the bright side, 10.4.2 is a slightly faster compiler. Complaint 1: The IDE should not run out of memory when compiling a project group. Complaint 2: The IDE should - if it runs out - handle it gracefully and not crash out.
  12. Lars Fosdal

    10.4.2 IDE Compilation Memory leak

    I commented on this one. https://quality.embarcadero.com/browse/RSP-32768 https://quality.embarcadero.com/browse/RSP-32792 and 93 are duplicates of that one, it seems.
  13. Lars Fosdal

    10.4.2 IDE Compilation Memory leak

    The IDE is a 32-bit app using the large memory "hack" that allows it to use 3Gb instead of two. See https://cc.embarcadero.com/Item/24309 for an example. @emailx45 The ISLC application you suggest is irrelevant. My laptop has 32 Gb.
  14. Lars Fosdal

    Delphi 10.4.2 first impressions

    @Mike Torrettinni 10.4.2 is a lot better than 10.4.1 in many respects. These are corner cases, and I expect there will be hotfixes. My guess is that 10.5.0 also will have issues that needs to be hotfixed - simply because exposing the IDE and compiler to real world code will uncover things that were not caught in the testing.
  15. Lars Fosdal

    Is this C++ builders new FORUM ???

    I do too, and I don't... There were those that abused that usability to spam threads, simply because it was so easy to do so. But yeah, the old newsgroups were underrated and should have survived and evolved.
  16. Lars Fosdal

    Delphi 10.4.2 first impressions

    @FredS Creating a new VCL project, adding your unit, and without saving the files - hovering over FormKeyDown in the implementation section - the IDE locks up. The LSP does not show any particular activity: The IDE seems to be running in a very tight loop in a single thread doing XML processing? Callstack: 0, msxml6.dll!DllGetActivationFactory+0x36a1a 1, 0x6d6a9a500589a9b8 2, 0xffffffff00000000 3, 0x6d6a9a8a00641f44 4, 0x6d6a9a500588c0c8 5, 0x300000000 6, msxml6.dll!DllGetActivationFactory+0x36a1a (No unwind info) 7, msxml6.dll+0x79a8a (No unwind info) 8, msxml6.dll+0x791cb (No unwind info) 9, msxml6.dll+0x6002b (No unwind info) 10, msxml6.dll+0x3f4c0 (No unwind info) 11, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 12, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 13, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 14, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 15, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 16, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 17, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 18, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 19, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 20, xmlrtl270.bpl!XmlXmldocTXMLNode_Release$qqsv+0xe (No unwind info) 21, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 22, rtl270.bpl!SystemClassesTInterfaceList$bdtr$qqrv+0x13 (No unwind info) 23, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 24, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 25, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 26, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 27, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 28, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 29, xmlrtl270.bpl!XmlXmldocTXMLNode_Release$qqsv+0xe (No unwind info) 30, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 31, rtl270.bpl!SystemClassesTInterfaceList$bdtr$qqrv+0x13 (No unwind info) 32, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 33, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 34, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 35, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 36, rtl270.bpl!SystemFinalizeRecord$qqrpvt1+0x111 (No unwind info) 37, rtl270.bpl!SystemTObjectCleanupInstance$qqrv+0x21 (No unwind info) 38, xmlrtl270.bpl!XmlXmldocTXMLNode_Release$qqsv+0xe (No unwind info) 39, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 40, xmlrtl270.bpl!XmlXmldocTXMLDocument$bdtr$qqrv+0x6f (No unwind info) 41, xmlrtl270.bpl!XmlXmldocTXMLDocument_Release$qqsv+0x33 (No unwind info) 42, rtl270.bpl!SystemIntfClear$qqrr44System%DelphiInterface$17SystemIInterface%+0x13 (No unwind info) 43, IDELSP270.bpl!BaselspserverTLSPServerLSPServerCharEncoding$qqrp14SystemTObjectx20SystemUnicodeStringp22SystemClassesTStream+0xbd8 (No unwind info) 44, vcl270.bpl!VclFormsTApplicationIdle$qqrrx6tagMSG+0x13b (No unwind info) 45, vcl270.bpl!VclFormsTApplicationHandleMessage$qqrv+0x1c (No unwind info) 46, bds.exe!_dbk_fcall_wrapper+0x1234ad (No unwind info) 47, kernel32.dll!BaseThreadInitThunk+0x19 (No unwind info) 48, ntdll.dll!RtlGetAppContainerNamedObjectPath+0xe4 (No unwind info) 49, ntdll.dll!RtlGetAppContainerNamedObjectPath+0xb4 (No unwind info)
  17. Lars Fosdal

    Delphi 10.4.2 first impressions

    Open IDE, and select File | New | Windows VCL Application - Delphi Update: Problem went away when deleting an expired license. Reported as: https://quality.embarcadero.com/browse/RSP-33104
  18. Lars Fosdal

    Blogged: DPM Package Manager Progress

    I wonder though - if it would be accepted as an IDE addon in GetIt 😛
  19. Lars Fosdal

    How to Refresh 10.4.2 CodeInsight

    Does a Clean and Build help? If not, you should create a QP issue.
  20. Lars Fosdal

    Is this C++ builders new FORUM ???

    Please note that we started with just a single sub-forum for the C++Builder guys because we had no idea how many there are and how many questions there would be. We can divide up in more subforums if the usage dictates it.
  21. Lars Fosdal

    WM_CHANGEUISTATE

    /off-topic, but 10.3 and prior versions used to flicker like hell when AD pushed its policy settings. Fortunately, this has improved with the later versions.
  22. Lars Fosdal

    Edge Webview update (?)

    That is where they included it, since GetIt can update components between IDE releases.
  23. Repeating the same question doesn't really help. Please don't do that. Since you did not specify the nature of your issue, it is hard for people to answer. https://www.quickreport.co.uk/ carries the latest versions of QuickReports for the various versions of Delphi and C++Builder.
  24. Lars Fosdal

    Is this C++ builders new FORUM ???

    Quite a bit can be found in the wayback machine. I agree, though. It was a strange thing to do. I guess they are really trying hard to shave off costs.
  25. Lars Fosdal

    spinlock primitives

    https://developer.arm.com/documentation/dui0473/m/arm-and-thumb-instructions/yield It was added in V6.
×