Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Defaultvärden eller NULL i kolumnerna?

Postades av 2002-04-11 10:08:41 - Gösta Similä, i forum databaser, Tråden har 2 Kommentarer och lästs av 804 personer

Rent intuitivt tycker man att ett NULL värde i ett "större" fält, typ Text i Access eller varchar() i SQL Server borde ge prestandavinster i databasen jämfört med om man har ett defaultvärde och samtidigt inte tillåter NULL i kolumnen.
INSERT, UPDATE & SELECT borde alla gå fortare med ett NULL värde ist.f. en tom eller expanderad blanksträng, "N/A", eller vad man nu har för NULL-värde.
Koden i ens VB-klient blir förstås lite längre, men som programmerare bjussar man gärna på det om man på köpet får fram vad man tror är en bättre lösning.
Vore mycket intresserad av att höra andras erfarenheter eller åsikter i ämnet använda eller inte använda NULL!


Svara

Sv: Defaultvärden eller NULL i kolumnerna?

Postades av 2002-04-11 12:02:25 - Christoffer Hedgate

NULL-värden i SQL Server är en delikat fråga ja. Generellt sett försöker jag undvika dem i möjligaste mån, men det är klart att i vissa fall är det dumt att ha en default istället. Vad man måste tänka på är att null-värden ofta behandlas annorlunda än 'riktiga' värden. Se ex. min artikel om COUNT()-funktionen för ett exempel på hur fel det kan bli (http://www.pellesoft.nu/login/articles/databas/count_prestanda.asp).

Vad gäller text-fält i SQL Server (jag räknar inte varchar som ett större fält) så blir det ännu mer speciellt med NULL-värden. Om vi bortser från att man i SQL Server 2000 kan använda en option som heter 'text in row' så lagras inte datan man skriver till ett text-fält tillsammans med den övriga datan i tabellen. Istället lagras endast en pekare till den riktiga datan, vilken sedan ligger lagrad i ett b-träd. Jag har inte riktigt lyckats komma fram till vad som egentligen lagras om man lägger in null i ett sådant fält (har iofs inte testat mycket heller) men jag kan tänka mig att den verkligen lagrar null och aldrig skapar nån pekare. Nedanstående kod verkar visa det. Den kommer ej att fungera om man inte avkommenterar update-satsen och kör den innan man försöker hämta sin textpointer.

use pubs
go

insert into publishers (pub_id, pub_name, city, state, country) values ('9912', 'Testpub', 'Boston', 'MA', 'USA')
go

insert into pub_info (pub_id) values ('9912')
go

select * from pub_info where pr_info is null

-- update pub_info set pr_info = NULL where pub_id = '9912'

DECLARE @ptrval VARBINARY(16)
SELECT @ptrval = TEXTPTR(pr_info)
FROM pub_info
WHERE pub_id = '9912'
WRITETEXT pub_info.pr_info @ptrval 'abcd'

select * from pub_info where pr_info is null


Vad jag försöker komma fram till är att man behöver nog inte fundera så mycket på prestanda när det gäller null-värden, utan det handlar mer om att man måste vara uppmärksam på vad det innebär att man har dem samt använda dem enbart när de har någon riktig mening.


Svara

Sv: Defaultvärden eller NULL i kolumnerna?

Postades av 2002-04-11 22:09:52 - Andreas Hillqvist

För vanliga ej obligatoriska fält föredrar jag null istället för tom sträng. Har vant mig att access spara dem så.

Vad det gäller obligatoriska fällt bör det ju inte vara tomma, null. Eller för textfält "".

Vad det gäller främmande nycklar(foreign keys) är null ett bra redskap för att kuna bibehålla referensintegritet om en relation skall vara valfri för en post.


Svara

Nyligen

  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 889
27 965
271 778
456
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies